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

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

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

作者﹕CCBZZP

在現實的應用中大家可能經常會遇到在DB2中如何實現Oracle的某些功能﹐

在此我簡單地總結一下﹐實現某一功能可能會有很多種方法﹐在此就沒有全部列出﹐

歡迎大家繼續﹐以便和大家共享﹐共同探討﹐共同近步﹗(以下主要以Oracle

8I,9I和DB2 7.X為例)。

1.如何查看數据庫的版本的Oracle和DB2的寫法

Oracle 可以這樣實現﹕

SQL> connect system/manager124@test;

已連線.

SQL> select * from v$version;

BANNER

----------------------------------------------------------------

Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production

PL/SQL Release 9.2.0.1.0 - Production

CORE 9.2.0.1.0 Production

TNS for 32-bit Windows: Version 9.2.0.1.0 - Production

NLSRTL Version 9.2.0.1.0 - Production

DB2 可以這樣實現﹕

在命令窗口執行 db2level

D:\SQLLIB\BIN>db2level

DB210851 Instance "DB2" uses DB2 code release "SQL07020" with level identifier

"03010105" and informational tokens "DB2 v7.1.0.40","n010415" and "WR21254".

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

Oracle 可以這樣實現﹕

SQL>truncate table table_name;

DB2 可以這樣實現﹕

alter table table_name active not logged initially with empty table;

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

Oracle 可以這樣實現﹕

SELECT tablespace_name, max_m, count_blocks free_blk_cnt, sum_free_m,to_char(100*sum_free_m/sum_m, '99.99') || '%' AS

pct_free

FROM ( SELECT tablespace_name,sum(bytes)/1024/1024 AS sum_m FROM dba_data_files GROUP BY tablespace_name),

( SELECT tablespace_name AS fs_ts_name, max(bytes)/1024/1024 AS max_m, count(blocks) AS count_blocks,

sum(bytes/1024/1024) AS sum_free_m FROM dba_free_space GROUP BY tablespace_name )

WHERE tablespace_name = fs_ts_name

DB2 可以這樣實現﹕

list tablespace containers for 你的表空間號 show detail;

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

Oracle 可以這樣實現﹕

1>.取時間點的年份的寫法:

SELECT TO_CHAR(SYSDATE,'YYYY') FROM DUAL;

2>.取時間點的月份的寫法:

SELECT TO_CHAR(SYSDATE,'MM') FROM DUAL;

3>.取時間點的日的寫法:

SELECT TO_CHAR(SYSDATE,'DD') FROM DUAL;

4>.取時間點的時的寫法:

SELECT TO_CHAR(SYSDATE,'HH24') FROM DUAL;

5>.取時間點的分的寫法:

SELECT TO_CHAR(SYSDATE,'MI') FROM DUAL;

6>.取時間點的秒的寫法:

SELECT TO_CHAR(SYSDATE,'SS') FROM DUAL;

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

select SUBSTR(systimestamp,20,6) from dual;

8>.取時間點的日期的寫法:

SELECT TRUNC(SYSDATE) FROM DUAL;

9>.取時間點的時間的寫法:

SELECT TO_CHAR(SYSDATE,'HH24:MI:SS') FROM DUAL;

10>.日期,時間形態變為字符形態

SELECT TO_CHAR(SYSDATE) FROM DUAL;

11>.將字符串轉換成日期或時間形態:

SELECT TO_DATE('2003/08/01') FROM DUAL;

12>.返回參數的星期几的寫法:

SELECT TO_CHAR(SYSDATE,'D') FROM DUAL;

13>.返回參數一年中的第几天的寫法:

SELECT TO_CHAR(SYSDATE,'DDD') FROM DUAL;

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

SELECT TO_CHAR(SYSDATE,'SSSSS') FROM DUAL;

15>.返回參數中一年的第几周的寫法:

SELECT TO_CHAR(SYSDATE,'WW') FROM DUAL;

DB2 可以這樣實現﹕

1>.取時間點的年份的寫法:

SELECT YEAR(current timestamp) FROM SYSIBM.SYSDUMMY1;

2>.取時間點的月份的寫法:

SELECT MONTH(current timestamp) FROM SYSIBM.SYSDUMMY1;

3>.取時間點的日的寫法:

SELECT DAY(current timestamp) FROM SYSIBM.SYSDUMMY1;

4>.取時間點的時的寫法:

SELECT HOUR(current timestamp) FROM SYSIBM.SYSDUMMY1;

5>.取時間點的分的寫法:

SELECT MINUTE(current timestamp) FROM SYSIBM.SYSDUMMY1;

6>.取時間點的秒的寫法:

SELECT SECOND(current timestamp) FROM SYSIBM.SYSDUMMY1;

7>.取時間點的毫秒的寫法:

SELECT MICROSECOND(current timestamp) FROM SYSIBM.SYSDUMMY1;

8>.取時間點的日期的寫法:

SELECT DATE(current timestamp) FROM SYSIBM.SYSDUMMY1;

9>.取時間點的時間的寫法:

SELECT TIME(current timestamp) FROM SYSIBM.SYSDUMMY1;

10>.日期,時間形態變為字符形態:

SELECT char(current date) FROM SYSIBM.SYSDUMMY1;

SELECT char(current time) FROM SYSIBM.SYSDUMMY1;

SELECT char(current date+12 hours) FROM SYSIBM.SYSDUMMY1;

11>.將字符串轉換成日期或時間形態:

SELECT TIMESTAMP('2002-10-20-12.00.00.000000') FROM SYSIBM.SYSDUMMY1;

SELECT TIMESTAMP('2002-10-20 12:00:00') FROM SYSIBM.SYSDUMMY1;

SELECT DATE('2002-10-20') FROM SYSIBM.SYSDUMMY1;

SELECT DATE('10/20/2002') FROM SYSIBM.SYSDUMMY1;

SELECT TIME('12:00:00') FROM SYSIBM.SYSDUMMY1;

SELECT TIME ('12.00.00') FROM SYSIBM.SYSDUMMY1;

12>.返回參數的星期几的寫法:

SELECT DAYNAME(current timestamp) FROM SYSIBM.SYSDUMMY1;

SELECT DAYOFWEEK(current timestamp) FROM SYSIBM.SYSDUMMY1;

SELECT DAYOFWEEK_ISO(current timestamp) FROM SYSIBM.SYSDUMMY1;

13>.返回參數一年中的第几天的寫法:

SELECT DAYOFYEAR(current timestamp) FROM SYSIBM.SYSDUMMY1;

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

SELECT MIDNIGHT_SECONDS(current timestamp) FORM SYSIBM.SYSDUMMY1;

15>.返回參數中一年的第几周的寫法:

SELECT WEEK(current timestamp) FORM SYSIBM.SYSDUMMY1;

待續...

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