db2存储结构换Oracle,DB2中实现Oracle的功能
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.如何查有多少个数据库实例的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语句的文件名 ;
1.如何查看数据库的版本的Oracle和DB2的写法
Oracle可以这样实现﹕
SQL>connectsystem/manager124@test;
已联机.
SQL>select*fromv$version;
BANNER
----------------------------------------------------------------
Oracle9iEnterpriseEditionRelease9.2.0.1.0-Production
PL/SQLRelease9.2.0.1.0-Production
CORE 9.2.0.1.0 Production
TNSfor32-bitWindows:Version9.2.0.1.0-Production
NLSRTLVersion9.2.0.1.0-Production
DB2可以这样实现﹕
在命令窗口执行db2level
D:\SQLLIB\BIN>db2level
DB210851Instance"DB2"usesDB2coderelease"SQL07020"withlevelidentifier
"03010105"andinformationaltokens"DB2v7.1.0.40","n010415"and"WR21254".
2.如何快速清空一个大表的Oracle和DB2的写法
Oracle可以这样实现﹕
SQL>truncatetabletable_name;
DB2可以这样实现﹕
altertabletable_nameactivenotloggedinitiallywithemptytable;
3.如何查看表空间的使用状况的Oracle和DB2的写法
Oracle可以这样实现﹕
SELECTtablespace_name,max_m,count_blocksfree_blk_cnt, sum_free_m,to_char(100*sum_free_m/sum_m,'99.99')||'%'AS
pct_free
FROM(SELECTtablespace_name,sum(bytes)/1024/1024ASsum_mFROMdba_data_filesGROUPBY tablespace_name),
(SELECTtablespace_nameASfs_ts_name,max(bytes)/1024/1024ASmax_m,count(blocks)AS count_blocks,
sum(bytes/1024/1024)ASsum_free_mFROMdba_free_spaceGROUPBY tablespace_name)
WHEREtablespace_name=fs_ts_name
DB2可以这样实现﹕
listtablespacecontainersfor你的表空间号showdetail;
4.如何从一时间点取出日期的各部分的常用的Oracle和DB2的写法
Oracle可以这样实现﹕
1>.取时间点的年份的写法:
SELECTTO_CHAR(SYSDATE,'YYYY')FROMDUAL;
2>.取时间点的月份的写法:
SELECTTO_CHAR(SYSDATE,'MM')FROMDUAL;
3>.取时间点的日的写法:
SELECTTO_CHAR(SYSDATE,'DD')FROMDUAL;
4>.取时间点的时的写法:
SELECTTO_CHAR(SYSDATE,'HH24')FROMDUAL;
5>.取时间点的分的写法:
SELECTTO_CHAR(SYSDATE,'MI')FROMDUAL;
6>.取时间点的秒的写法:
SELECTTO_CHAR(SYSDATE,'SS')FROMDUAL;
7>.取时间点的毫秒的写法:(9I以上)
selectSUBSTR(systimestamp,20,6)fromdual;
8>.取时间点的日期的写法:
SELECTTRUNC(SYSDATE)FROMDUAL;
9>.取时间点的时间的写法:
SELECTTO_CHAR(SYSDATE,'HH24:MI:SS')FROMDUAL;
10>.日期,时间形态变为字符形态
SELECTTO_CHAR(SYSDATE)FROMDUAL;
11>.将字符串转换成日期或时间形态:
SELECTTO_DATE('2003/08/01')FROMDUAL;
12>.返回参数的星期几的写法:
SELECTTO_CHAR(SYSDATE,'D')FROMDUAL;
13>.返回参数一年中的第几天的写法:
SELECTTO_CHAR(SYSDATE,'DDD')FROMDUAL;
14>.返回午夜和参数中指定的时间值之间的秒数的写法:
SELECTTO_CHAR(SYSDATE,'SSSSS')FROMDUAL;
15>.返回参数中一年的第几周的写法:
SELECTTO_CHAR(SYSDATE,'WW')FROMDUAL;
DB2可以这样实现﹕
1>.取时间点的年份的写法:
SELECTYEAR(currenttimestamp) FROMSYSIBM.SYSDUMMY1;
2>.取时间点的月份的写法:
SELECTMONTH(currenttimestamp) FROMSYSIBM.SYSDUMMY1;
3>.取时间点的日的写法:
SELECTDAY(currenttimestamp) FROMSYSIBM.SYSDUMMY1;
4>.取时间点的时的写法:
SELECTHOUR(currenttimestamp) FROMSYSIBM.SYSDUMMY1;
5>.取时间点的分的写法:
SELECTMINUTE(currenttimestamp) FROMSYSIBM.SYSDUMMY1;
6>.取时间点的秒的写法:
SELECTSECOND(currenttimestamp) FROMSYSIBM.SYSDUMMY1;
7>.取时间点的毫秒的写法:
SELECTMICROSECOND(currenttimestamp) FROMSYSIBM.SYSDUMMY1;
8>.取时间点的日期的写法:
SELECTDATE(currenttimestamp) FROMSYSIBM.SYSDUMMY1;
9>.取时间点的时间的写法:
SELECTTIME(currenttimestamp) FROMSYSIBM.SYSDUMMY1;
10>.日期,时间形态变为字符形态:
SELECTchar(currentdate)FROMSYSIBM.SYSDUMMY1;
SELECTchar(currenttime)FROMSYSIBM.SYSDUMMY1;
SELECTchar(currentdate+12hours)FROMSYSIBM.SYSDUMMY1;
11>.将字符串转换成日期或时间形态:
SELECTTIMESTAMP('2002-10-20-12.00.00.000000')FROMSYSIBM.SYSDUMMY1;
SELECTTIMESTAMP('2002-10-2012:00:00')FROMSYSIBM.SYSDUMMY1;
SELECTDATE('2002-10-20')FROMSYSIBM.SYSDUMMY1;
SELECTDATE('10/20/2002')FROMSYSIBM.SYSDUMMY1;
SELECTTIME('12:00:00')FROMSYSIBM.SYSDUMMY1;
SELECTTIME('12.00.00')FROMSYSIBM.SYSDUMMY1;
12>.返回参数的星期几的写法:
SELECTDAYNAME(currenttimestamp) FROMSYSIBM.SYSDUMMY1;
SELECTDAYOFWEEK(currenttimestamp) FROMSYSIBM.SYSDUMMY1;
SELECTDAYOFWEEK_ISO(currenttimestamp) FROMSYSIBM.SYSDUMMY1;
13>.返回参数一年中的第几天的写法:
SELECTDAYOFYEAR(currenttimestamp) FROMSYSIBM.SYSDUMMY1;
14>.返回午夜和参数中指定的时间值之间的秒数的写法:
SELECTMIDNIGHT_SECONDS(currenttimestamp)FORMSYSIBM.SYSDUMMY1;
15>.返回参数中一年的第几周的写法:
SELECTWEEK(currenttimestamp)FORMSYSIBM.SYSDUMMY1;
在DB2中如何实现Oracle的相关功能
在现实的应用中大家可能经常会遇到在DB2中如何实现Oracle的某些功能﹐在此我简单地总结一下﹐实现某一功能可能会有很多种方法﹐在此就没有全部列出﹐欢迎大家继续﹐以便和大家共享﹐共同探讨﹐共同近步﹗(以下主要以Oracle8I和DB2 7.X为例)。
1.如何取一表前n笔记录的Oracle和DB2的写法
Oracle 可以这样实现﹕
Select * from user.bsempms where rownum<=n;
DB2 可以这样实现﹕
Select * from db2admin.bsempms fetch first n rows only;
另外也可以用 row_number() over() 去实现的;
2.如何取得当前日期的Oracle和DB2的写法
Oracle 可以这样实现﹕
Select sysdate from dual;
DB2 可以这样实现﹕
Select current timestamp from sysibm.sysdummy1;
3.如何连接字段的Oracle和DB2的写法
Oracle 可以这样实现﹕
Select emp_no||emp_nam from bsempms;
Select concat(emp_no,emp_nam) from bsempms;
DB2 可以这样实现﹕
Select emp_no||emp_nam from db2admin.bsempms;
select emp_no concat emp_nam from db2admin.bsempms;
4.如何查询表的结构的Oracle和DB2的写法
Oracle 可以这样实现﹕
Select sysdate from dual;
DB2 可以这样实现﹕
Select current timestamp from sysibm.sysdummy1;
5.内连接INNER JOIN的Oracle和DB2的写法
Oracle可以这样实现﹕
Select a.* from bsempms a,bsdptms b where a.dpt_no=b.dpt_no;
DB2 可以这样实现﹕
Select * from db2admin.bsempms inner join db2admin.bsdptms
on db2admin.bsempms.dpt_no=db2admin.bsdptms.dpt_no;
6.外连接的Oracle和DB2的写法(右外连接,左外连接,完全外连接,组合外连接)
Oracle可以这样实现﹕
Select a.* from bsempms a,bsdptms b where a.dpt_no=b.dpt_no(+);
Select a.* from bsempms a,bsdptms b wherea.dpt_no(+)=b.dpt_no;
DB2 可以这样实现﹕
Select * from db2admin.bsempms right outer join db2admin.bsdptms
on db2admin.bsempms.dpt_no=db2admin.bsdptms.dpt_no;
Select * from db2admin.bsempms left outer join db2admin.bsdptms
on db2admin.bsempms.dpt_no=db2admin.bsdptms.dpt_no;
Select * from db2admin.bsempms full outer join db2admin.bsdptms
on db2admin.bsempms.dpt_no=db2admin.bsdptms.dpt_no;
7.如何执行脚本SQL文件的Oracle和DB2的写法
Oracle 可以这样实现﹕
SQL>@$PATH/filename.sql;
DB2 可以这样实现﹕
db2 -tvf $PATH/filename.sql 文件中每行以 ; 结尾
db2存储结构换Oracle,DB2中实现Oracle的功能相关推荐
- java oracle exp_java中使用oracle的exp/imp导出、导入数据
今天在学习的过程中遇到了一篇关于java中使用oracle导入导出的文章,感觉还不错,为了学习和以后工作的需要,我整理如下: String[] cmds=newString[3]; c ...
- oracle z中rowid,oracle 10g中的ROWID
1 ROWID的特性 (1)rowid是一个伪列,是用来确保表中行的唯一性,它并不能指示出行的物理位置,但可以用来定位行. (2)rowid是存储在索引中的一组既定的值(当行确定后).我们可以像表中普 ...
- oracle数据库中nvarchar,Oracle数据库中的varchar,varchar2,nvarchar,nvarchar2区别及用
[varchar,varchar2 ] 联系: 1. varchar/varchar2用于存储可变长度的字符串 比如 varchar(20),存入字符串'abc', 则数据库中该字段只占3个字节,而不 ...
- oracle.jobs中failures,Oracle job详解
select job,last_date,last_sec,next_date,next_sec,broken,failures from dba_jobs; ALTER SYSTEM SET JOB ...
- oracle函数中bitand,Oracle bitand()函数使用方法
bitand( ) 函数 返回两个数值型数值在按位进行 AND 运算后的结果. 语法 BITAND(nExpression1, nExpression2) 参数 n ...
- mybatis3 oracle,Mybatis3中對oracle的批量插入
Mybatis批量插入的資料,很多都是mysql的,insert into ... values (),(),...醬紫.oracle中不支持這種語法,oracle中的批量插入是醬紫insert in ...
- Oracle 12c中导入Oracle 11g的数据
我们直接说干的: 1.在github上下Oracle 11g所有示例用户的sql脚本文件(地址失效请评论区留言) https://github.com/oracle/db-sample-schemas ...
- 程矢Oracle PowerDesigner中生成Oracle版本主键和自增列
Oracle中如何新建自增列,总的来说需要建立序列,并把这个序列付给某一列,重建触发器即可. 第一步,打开PD,新建一个PDM文档,然后新建一个表,如图所示: 第二步,创建一个序列.在[Model]- ...
- oracle 数据库中拆分,oracle数据库字符串拆分
第一种 直接返回切分的字符串 create or replace function Get_StrArrayLength ( av_str varchar2,--要分割的字符串 av_split va ...
最新文章
- css实现 textarea 高度自适应
- EfficientNet 测试
- 日报 18/07/22 您的设计模式!终于有时间开写~ ~
- 第十二课:Sizzle引擎详解
- Eclipse常用快捷
- 需求用例分析之备选流
- vim + cscope + kscope
- openwrt固定速率_固定速率与固定延迟– RxJava常见问题解答
- 再读《Java编程思想 》
- DevExpress去除多国语言包
- ios addressbook
- nginx 配置https 443端口配置
- linux文件类型elf,Linux下ELF文件的格式(1)
- AnkhSvn 在vs2015中没有起到作用问题
- python基础以及面向对象
- 小米世界第三,华为首次跌出前五
- Android 编译速度优化黑科技 - RocketX
- 你已经是智能机器人,该上岗新基建了
- single-shot detection(SSD)目标检测算法详解——(一看就懂系列!!!)
- 特征选择----relief及reliefF算法
热门文章
- GOOGLE搜索出来的你的网站说明是乱码的
- 408计算机组成原理有汇编吗,2021考研408计算机组成原理习题:计算机系统概述
- axios 配置loading_用Axios Element 实现全局的请求 loading
- WordPress 查询数据库 操作数据库
- Unhandled event loop exception Item not added
- 每天一个linux命令(37):date命令
- C++中const、volatile、mutable的用法
- C语言中的位域的使用
- vim中正则表达式匹配单词边界
- 格式化网上复制过来的源代码