在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' ;