数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
在DB2中如何實現Oracle的相關功能(二)

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

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

  待續...

 

 




相关文章

相关软件