在DB2中如何實現Oracle的相關功能(四)

王朝oracle·作者佚名  2006-01-08
宽屏版  字体: |||超大  

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

待續...

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有