日期:2014-05-16  浏览次数:20574 次

DB2使用笔记
1.连接DB2
开始-->运行-->db2cmd-->db2 connect to selfhelp user lixh using lixh

2.从DB2导出数据为文本方式到本地:
db2 export to 'd:\gg.txt' of del modified by timestampformat="yyyy-mm-dd hh:mi:ss" messages 'd:\mm.txt' select * from t_sys_log;

3.从本地导入文本数据到DB2:
db2 import from 'd:\gg.txt' of del modified by compound=50 commitcount 1000 messages 'd:\mm.txt' insert into t_sys_log;

4.oracle和db2不相同的内部函数:
DB2 ------------------------ORACLE

COALESCE(,)------------------VAL(,)
CHAR(NEXTVAL for summary_daily_seq)------------------summary_daily_seq.nextval
date('yyyy-mm-dd')------------------to_date('','yyyy-mm-dd')
DB2跟oracle一样,都可以用'||'来连接字符串,如:
date(substr(start_time,1,4)||'-'||substr(start_time,5,2)||'-'||substr(start_time,7,2))
select 1+1 from dual------------------select 1+1 from SYSIBM.SYSDUMMY1;
alter table tmp_t_call activate not logged  initially with empty table------------------truncate table tmp_t_call

5.DB2需要注意的一些地方:
1) 申明变量类型如varchar,number等要加长度。
2) 申明变量要加关键字declare,而且不能直接初始化,要用set name='';的方式。
3) 如果查询语句的from后面是另一个子查询,那么要为这个子查询起一个别名,用as。
4) 在存储过程中写execute immediate语句时,要先申明一个变量,然后把要执行的命令赋值给变量,再执行这个变量。
5) 不能把varchar类型的值赋值給INTEGER类型或number类型,可以使用包装器,如INTEGER(substr('',1,4))或NUMBER(substr('',1,4))。
6) 申明变量要在正文,即在begin后面,不能像oracle那样,在create过程的后面用is XXX来声明变量。
7) 对于一些语法接口,如if,case等的用法,可以到DB2安装路径的sample目录下找例子。
8) 修改数据结构,数据库结构等等的语句称为DDL,比如:alter table, create table, alter user, truncate table等等。修改数据本身的语句成为DML,比如:update,insert,delete。DDL不可以rollback,但是DML可以。