oracle 下和 db2的syscat 对应的,ORACLE和DB2实现相同功能的做法(2)

1.如何查有多少个数据库实例的Oracle和DB2的写法

Oracle 可以这样实现﹕

SQL>SELECT * FROM V$INSTANCE;

DB2 可以这样实现﹕

在命令窗口执行 db2ilist

2.如何查询数据库有多少表的Oracle和DB2的写法

Oracle 可以这样实现﹕

SQL>select * from all_tables;

DB2 可以这样实现﹕

在命令中心执行

select * from syscat.tables;

3.如何知道表锁的情况的Oracle和DB2的写法

Oracle 可以这样实现﹕

SQL>SELECT S.SID SESSION_ID, S.USERNAME, DECODE(LMODE, 0, 'None', 1, 'Null', 2, 'Row-S (SS)', 3, 'Row-X (SX)', 4, 'Share', 5, 'S/Row-X (SSX)', 6, 'Exclusive', TO_CHAR(LMODE)) MODE_HELD, DECODE(REQUEST, 0, 'None', 1, 'Null', 2, 'Row-S (SS)', 3, 'Row-X (SX)', 4, 'Share', 5, 'S/Row-X (SSX)', 6, 'Exclusive', TO_CHAR(REQUEST)) MODE_REQUESTED, O.OWNER||'.'||O.OBJECT_NAME||' ('||O.OBJECT_TYPE||')', S.TYPE LOCK_TYPE, L.ID1 LOCK_ID1, L.ID2 LOCK_ID2 FROM V$LOCK L, SYS.DBA_OBJECTS O, V$SESSION S WHERE L.SID = S.SID AND L.ID1 = O.OBJECT_ID

DB2 可以这样实现﹕

在你执行你的存储过程之前,执行命令打开锁的监视开光

db2 update monisor switches using lock on ;

然后执行你的存储过程,在执行存储过程期间的时候使用命令

db2 get snapshot for locks on yourdatdabasename ;

就可以看见了你锁情况了

4.如何对锁住的表进行解锁的Oracle和DB2的写法

Oracle 可以这样实现﹕

SQL>alter system kill session 'sid,service#';

DB2 可以这样实现﹕

db2 force application all ;

db2 terminate ;

5.测试SQL语句执行所用的时间的Oracle和DB2的写法

Oracle 可以这样实现﹕

SQL>set timing on ;

SQL>select * from tablename;

DB2 可以这样实现﹕

db2batch -d 库名 -f 含有SQL语句的文件名 ;

6. 如何配置Sequence的Oracle和DB2的写法

Oracle 可以这样实现﹕

建sequence seq_custid

create sequence seq_custid start 1 incrememt by 1;

建表时:

create table cust

{ cust_id smallint not null,

...}

insert 时:

insert into table cust

values( seq_cust.nextval, ...)

DB2 可以这样实现﹕

identity字段属性 用法:

create table时

cust_id smallint not null generated always as indentity (start with

1 increment by 1)

insert 时:

insert into table cust (cust_id, ... )

values ( default, ...)

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值