在DB2中如何實現Oracle的相關功能(四) 作者﹕CCBZZP 在現實的應用中大家可能經常會碰到在DB2中如何實現Oracle的某些功能﹐
在此我簡單地總結一下﹐實現某一功能可能會有很多種方法﹐在此就沒有全部列出﹐ 歡迎大家繼續﹐以便和大家共享﹐共同探討﹐共同近步﹗(以下主要以Oracle 8I,9I和DB2 7.X為例)。 1.如何實現分頁顯示的Oracle和DB2的寫法 Oracle 可以這樣實現﹕ SQL>select rownum,* from BSEMPMS where rownum >=5 and rownum <=100; DB2 可以這樣實現﹕ select * from (select ROW_NUMBER() over() as a, db2admin.bsempms.* from db2admin.bsempms) as temp where a>=5 and a<=100 ; 2.利用別的表創建表的Oracle和DB2的寫法 Oracle 可以這樣實現﹕ SQL>create table a as select * from b ; DB2 可以這樣實現﹕ create table a like b ; 3.如何更改用戶密碼的Oracle和DB2的寫法 Oracle 可以這樣實現﹕ SQL>alter user user123 identified by passWord_new; DB2 可以這樣實現﹕ connect to dbname user db2admin using oldpassw new newpassw confirm newpassw ; 4.如何增加用戶的Oracle和DB2的寫法 Oracle 可以這樣實現﹕ SQL>create user user123 identified by password_new; DB2 可以這樣實現﹕ 添加用户: “开始/设置/控制面板/用户”添加一个用户名(例:db2admin) 分配权限: grant dbadm on database to user 用户名 5.兩個結果集互減的函數的Oracle和DB2的寫法 Oracle 可以這樣實現﹕ SQL>SELECT * FROM BSEMPMS_OLD MINUS SELECT * FROM BSEMPMS_NEW; DB2 可以這樣實現﹕ SELECT * FROM BSEMPMS_OLD EXCEPT SELECT * FROM BSEMPMS_NEW; SELECT * FROM BSEMPMS_OLD EXCEPT ALL SELECT * FROM BSEMPMS_NEW; 6.兩個結果集互加的函數的Oracle和DB2的寫法 Oracle 可以這樣實現﹕ SQL>SELECT * FROM BSEMPMS_OLD INTERSECT SELECT * FROM BSEMPMS_NEW; SQL>SELECT * FROM BSEMPMS_OLD UNION SELECT * FROM BSEMPMS_NEW; SQL>SELECT * FROM BSEMPMS_OLD UNION ALL SELECT * FROM BSEMPMS_NEW; DB2 可以這樣實現﹕ SELECT * FROM DB2ADMIN.BSEMPMS UNION SELECT * FROM DB2ADMIN.BSEMPMS ; SELECT * FROM DB2ADMIN.BSEMPMS UNION ALL SELECT * FROM DB2ADMIN.BSEMPMS ; 7.如何找数据库表的主键字段的名称的Oracle和DB2的寫法 Oracle 可以這樣實現﹕ SQL>SELECT * FROM user_constraints WHERE CONSTRAINT_TYPE='P' and table_name='TABLE_NAME'; DB2 可以這樣實現﹕ select colnames from syscat.indexes where tabname='TABLE_NAME' ;
待續...
|