日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

db2存储结构换Oracle,DB2中实现Oracle的功能

發(fā)布時間:2023/12/10 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 db2存储结构换Oracle,DB2中实现Oracle的功能 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.如何實(shí)現(xiàn)分頁顯示的Oracle和DB2的寫法

Oracle 可以這樣實(shí)現(xiàn)﹕

SQL>select rownum,* from BSEMPMS where rownum >=5 and rownum <=100;

DB2 可以這樣實(shí)現(xiàn)﹕

select * from (select ROW_NUMBER() over() as a, db2admin.bsempms.* from

db2admin.bsempms) as temp where a>=5 and a<=100 ;

2.利用別的表創(chuàng)建表的Oracle和DB2的寫法

Oracle 可以這樣實(shí)現(xiàn)﹕

SQL>create table a as select * from b ;

DB2 可以這樣實(shí)現(xiàn)﹕

create table a like b ;

3.如何更改用戶密碼的Oracle和DB2的寫法

Oracle 可以這樣實(shí)現(xiàn)﹕

SQL>alter user user123 identified by password_new;

DB2 可以這樣實(shí)現(xiàn)﹕

connect to dbname user db2admin using oldpassw new newpassw confirm newpassw ;

4.如何增加用戶的Oracle和DB2的寫法

Oracle 可以這樣實(shí)現(xiàn)﹕

SQL>create user user123 identified by password_new;

DB2 可以這樣實(shí)現(xiàn)﹕

添加用戶:

“開始/設(shè)置/控制面板/用戶”添加一個用戶名(例:db2admin)

分配權(quán)限:

grant dbadm on database to user 用戶名

5.兩個結(jié)果集互減的函數(shù)的Oracle和DB2的寫法

Oracle 可以這樣實(shí)現(xiàn)﹕

SQL>SELECT * FROM BSEMPMS_OLD MINUS SELECT * FROM BSEMPMS_NEW;

DB2 可以這樣實(shí)現(xiàn)﹕

SELECT * FROM BSEMPMS_OLD EXCEPT SELECT * FROM BSEMPMS_NEW;

SELECT * FROM BSEMPMS_OLD EXCEPT ALL SELECT * FROM BSEMPMS_NEW;

6.兩個結(jié)果集互加的函數(shù)的Oracle和DB2的寫法

Oracle 可以這樣實(shí)現(xiàn)﹕

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 可以這樣實(shí)現(xiàn)﹕

SELECT * FROM?DB2ADMIN.BSEMPMS

UNION

SELECT * FROM?DB2ADMIN.BSEMPMS ;

SELECT * FROM?DB2ADMIN.BSEMPMS

UNION?ALL

SELECT * FROM?DB2ADMIN.BSEMPMS ;

7.如何找數(shù)據(jù)庫表的主鍵字段的名稱的Oracle和DB2的寫法

Oracle 可以這樣實(shí)現(xiàn)﹕

SQL>SELECT * FROM user_constraints WHERE CONSTRAINT_TYPE='P' and?table_name='TABLE_NAME';

DB2 可以這樣實(shí)現(xiàn)﹕

select colnames from syscat.indexes where tabname='TABLE_NAME' ;

1.如何查有多少個數(shù)據(jù)庫實(shí)例的Oracle和DB2的寫法

Oracle 可以這樣實(shí)現(xiàn)﹕

SQL>SELECT * FROM V$INSTANCE;

DB2 可以這樣實(shí)現(xiàn)﹕

在命令窗口執(zhí)行 db2ilist

2.如何查詢數(shù)據(jù)庫有多少表的Oracle和DB2的寫法

Oracle 可以這樣實(shí)現(xiàn)﹕

SQL>select * from all_tables;

DB2 可以這樣實(shí)現(xiàn)﹕

在命令中心執(zhí)行

select?*?from syscat.tables;

3.如何知道表鎖的情況的Oracle和DB2的寫法

Oracle 可以這樣實(shí)現(xiàn)﹕

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 可以這樣實(shí)現(xiàn)﹕

在你執(zhí)行你的存儲過程之前,執(zhí)行命令打開鎖的監(jiān)視開光

db2 update monisor switches using lock on ;

然后執(zhí)行你的存儲過程,在執(zhí)行存儲過程期間的時候使用命令

db2 get snapshot for locks on yourdatdabasename ;

就可以看見了你鎖情況了

4.如何對鎖住的表進(jìn)行解鎖的Oracle和DB2的寫法

Oracle 可以這樣實(shí)現(xiàn)﹕

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

DB2 可以這樣實(shí)現(xiàn)﹕

db2 force application all ;

db2 terminate ;

5.測試SQL語句執(zhí)行所用的時間的Oracle和DB2的寫法

Oracle 可以這樣實(shí)現(xiàn)﹕

SQL>set timing on ;

SQL>select * from tablename;

DB2 可以這樣實(shí)現(xiàn)﹕

db2batch -d 庫名 -f 含有SQL語句的文件名 ;

1.如何查看數(shù)據(jù)庫的版本的Oracle和DB2的寫法

Oracle可以這樣實(shí)現(xiàn)﹕

SQL>connectsystem/manager124@test;

已聯(lián)機(jī).

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可以這樣實(shí)現(xiàn)﹕

在命令窗口執(zhí)行db2level

D:\SQLLIB\BIN>db2level

DB210851Instance"DB2"usesDB2coderelease"SQL07020"withlevelidentifier

"03010105"andinformationaltokens"DB2v7.1.0.40","n010415"and"WR21254".

2.如何快速清空一個大表的Oracle和DB2的寫法

Oracle可以這樣實(shí)現(xiàn)﹕

SQL>truncatetabletable_name;

DB2可以這樣實(shí)現(xiàn)﹕

altertabletable_nameactivenotloggedinitiallywithemptytable;

3.如何查看表空間的使用狀況的Oracle和DB2的寫法

Oracle可以這樣實(shí)現(xiàn)﹕

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可以這樣實(shí)現(xiàn)﹕

listtablespacecontainersfor你的表空間號showdetail;

4.如何從一時間點(diǎn)取出日期的各部分的常用的Oracle和DB2的寫法

Oracle可以這樣實(shí)現(xiàn)﹕

1>.取時間點(diǎn)的年份的寫法:

SELECTTO_CHAR(SYSDATE,'YYYY')FROMDUAL;

2>.取時間點(diǎn)的月份的寫法:

SELECTTO_CHAR(SYSDATE,'MM')FROMDUAL;

3>.取時間點(diǎn)的日的寫法:

SELECTTO_CHAR(SYSDATE,'DD')FROMDUAL;

4>.取時間點(diǎn)的時的寫法:

SELECTTO_CHAR(SYSDATE,'HH24')FROMDUAL;

5>.取時間點(diǎn)的分的寫法:

SELECTTO_CHAR(SYSDATE,'MI')FROMDUAL;

6>.取時間點(diǎn)的秒的寫法:

SELECTTO_CHAR(SYSDATE,'SS')FROMDUAL;

7>.取時間點(diǎn)的毫秒的寫法:(9I以上)

selectSUBSTR(systimestamp,20,6)fromdual;

8>.取時間點(diǎn)的日期的寫法:

SELECTTRUNC(SYSDATE)FROMDUAL;

9>.取時間點(diǎn)的時間的寫法:

SELECTTO_CHAR(SYSDATE,'HH24:MI:SS')FROMDUAL;

10>.日期,時間形態(tài)變?yōu)樽址螒B(tài)

SELECTTO_CHAR(SYSDATE)FROMDUAL;

11>.將字符串轉(zhuǎn)換成日期或時間形態(tài):

SELECTTO_DATE('2003/08/01')FROMDUAL;

12>.返回參數(shù)的星期幾的寫法:

SELECTTO_CHAR(SYSDATE,'D')FROMDUAL;

13>.返回參數(shù)一年中的第幾天的寫法:

SELECTTO_CHAR(SYSDATE,'DDD')FROMDUAL;

14>.返回午夜和參數(shù)中指定的時間值之間的秒數(shù)的寫法:

SELECTTO_CHAR(SYSDATE,'SSSSS')FROMDUAL;

15>.返回參數(shù)中一年的第幾周的寫法:

SELECTTO_CHAR(SYSDATE,'WW')FROMDUAL;

DB2可以這樣實(shí)現(xiàn)﹕

1>.取時間點(diǎn)的年份的寫法:

SELECTYEAR(currenttimestamp) FROMSYSIBM.SYSDUMMY1;

2>.取時間點(diǎn)的月份的寫法:

SELECTMONTH(currenttimestamp) FROMSYSIBM.SYSDUMMY1;

3>.取時間點(diǎn)的日的寫法:

SELECTDAY(currenttimestamp) FROMSYSIBM.SYSDUMMY1;

4>.取時間點(diǎn)的時的寫法:

SELECTHOUR(currenttimestamp) FROMSYSIBM.SYSDUMMY1;

5>.取時間點(diǎn)的分的寫法:

SELECTMINUTE(currenttimestamp) FROMSYSIBM.SYSDUMMY1;

6>.取時間點(diǎn)的秒的寫法:

SELECTSECOND(currenttimestamp) FROMSYSIBM.SYSDUMMY1;

7>.取時間點(diǎn)的毫秒的寫法:

SELECTMICROSECOND(currenttimestamp) FROMSYSIBM.SYSDUMMY1;

8>.取時間點(diǎn)的日期的寫法:

SELECTDATE(currenttimestamp) FROMSYSIBM.SYSDUMMY1;

9>.取時間點(diǎn)的時間的寫法:

SELECTTIME(currenttimestamp) FROMSYSIBM.SYSDUMMY1;

10>.日期,時間形態(tài)變?yōu)樽址螒B(tài):

SELECTchar(currentdate)FROMSYSIBM.SYSDUMMY1;

SELECTchar(currenttime)FROMSYSIBM.SYSDUMMY1;

SELECTchar(currentdate+12hours)FROMSYSIBM.SYSDUMMY1;

11>.將字符串轉(zhuǎn)換成日期或時間形態(tài):

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>.返回參數(shù)的星期幾的寫法:

SELECTDAYNAME(currenttimestamp) FROMSYSIBM.SYSDUMMY1;

SELECTDAYOFWEEK(currenttimestamp) FROMSYSIBM.SYSDUMMY1;

SELECTDAYOFWEEK_ISO(currenttimestamp) FROMSYSIBM.SYSDUMMY1;

13>.返回參數(shù)一年中的第幾天的寫法:

SELECTDAYOFYEAR(currenttimestamp) FROMSYSIBM.SYSDUMMY1;

14>.返回午夜和參數(shù)中指定的時間值之間的秒數(shù)的寫法:

SELECTMIDNIGHT_SECONDS(currenttimestamp)FORMSYSIBM.SYSDUMMY1;

15>.返回參數(shù)中一年的第幾周的寫法:

SELECTWEEK(currenttimestamp)FORMSYSIBM.SYSDUMMY1;

在DB2中如何實(shí)現(xiàn)Oracle的相關(guān)功能

在現(xiàn)實(shí)的應(yīng)用中大家可能經(jīng)常會遇到在DB2中如何實(shí)現(xiàn)Oracle的某些功能﹐在此我簡單地總結(jié)一下﹐實(shí)現(xiàn)某一功能可能會有很多種方法﹐在此就沒有全部列出﹐歡迎大家繼續(xù)﹐以便和大家共享﹐共同探討﹐共同近步﹗(以下主要以O(shè)racle8I和DB2 7.X為例)。

1.如何取一表前n筆記錄的Oracle和DB2的寫法

Oracle 可以這樣實(shí)現(xiàn)﹕

Select * from user.bsempms where rownum<=n;

DB2 可以這樣實(shí)現(xiàn)﹕

Select * from db2admin.bsempms fetch first n rows only;

另外也可以用 row_number() over() 去實(shí)現(xiàn)的;

2.如何取得當(dāng)前日期的Oracle和DB2的寫法

Oracle 可以這樣實(shí)現(xiàn)﹕

Select sysdate from dual;

DB2 可以這樣實(shí)現(xiàn)﹕

Select current timestamp from sysibm.sysdummy1;

3.如何連接字段的Oracle和DB2的寫法

Oracle 可以這樣實(shí)現(xiàn)﹕

Select emp_no||emp_nam from bsempms;

Select concat(emp_no,emp_nam) from bsempms;

DB2 可以這樣實(shí)現(xiàn)﹕

Select emp_no||emp_nam from db2admin.bsempms;

select emp_no concat emp_nam from db2admin.bsempms;

4.如何查詢表的結(jié)構(gòu)的Oracle和DB2的寫法

Oracle 可以這樣實(shí)現(xiàn)﹕

Select sysdate from dual;

DB2 可以這樣實(shí)現(xiàn)﹕

Select current timestamp from sysibm.sysdummy1;

5.內(nèi)連接INNER JOIN的Oracle和DB2的寫法

Oracle可以這樣實(shí)現(xiàn)﹕

Select a.* from bsempms a,bsdptms b where a.dpt_no=b.dpt_no;

DB2 可以這樣實(shí)現(xiàn)﹕

Select * from db2admin.bsempms inner join db2admin.bsdptms

on db2admin.bsempms.dpt_no=db2admin.bsdptms.dpt_no;

6.外連接的Oracle和DB2的寫法(右外連接,左外連接,完全外連接,組合外連接)

Oracle可以這樣實(shí)現(xiàn)﹕

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 可以這樣實(shí)現(xiàn)﹕

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.如何執(zhí)行腳本SQL文件的Oracle和DB2的寫法

Oracle 可以這樣實(shí)現(xiàn)﹕

SQL>@$PATH/filename.sql;

DB2 可以這樣實(shí)現(xiàn)﹕

db2 -tvf $PATH/filename.sql 文件中每行以 ; 結(jié)尾

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的db2存储结构换Oracle,DB2中实现Oracle的功能的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。