设为首页 收藏本站
查看: 894|回复: 0

[经验分享] ORACLE和DB2实现相同功能的做法(2)

[复制链接]

尚未签到

发表于 2016-7-24 10:54:34 | 显示全部楼层 |阅读模式
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' ;

 

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-248556-1-1.html 上篇帖子: JAVA完全控制Oracle中BLOB、CLOB说明 下篇帖子: 《Oracle 9i&10g 编程艺术》读书笔记——事务
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表