db2命令记录(一)

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一.请问高手,如何查看tablespace里包含哪些表?

select tabschema,tabname from syscat.tables where tbspace='TABLESPACEA' and type='T' 这里的TABLESPACEA具体情况定,如用USERSPACE1(158.222.2.110)

第二.

DB2 CLP

从DOS进入db2cmd

db2cmd

在本地DB2数据库添加一个远程结点

db2 catalog tcpip node xdzx1 remote 155.222.2.110 server 60064

db2 catalog database xdzx1 at node xdzx1

查看版本信息

db2licm -l

启动,停止db2数据库

db2admin start db2admin stop

db2start db2stop

执行存储过程

db2 " call p01_acct_depacct_y('2007-4-15',?,?)"

创建t01_acct_depacct_y表,in dms_data 代表数据存在dms_data命名空间 index in dms_idx代表索引创建在dms_idx里面

create table t01_acct_depacct_y

(

record_date DATE not null,

etl_date DATE,

dep_acct_no CHAR(15) not null,

curr_cd CHAR(3) not null,

curr_iden CHAR(1) not null,

bank_no CHAR(6) not null,

summary_bank_no CHAR(6),

xyz_no CHAR(2),

dep_categ CHAR(1),

acct_name VARCHAR(160),

acct_short_name VARCHAR(60),

busi_typ CHAR(3),

assu_busi_typ CHAR(2),

dep_term INT,

open_date DATE,

close_date DATE,

cust_open_date DATE,

dep_bal_tsum DEC(24,2),

dep_bal_msum DEC(24,2),

dep_bal_qsum DEC(24,2),

dep_bal_qend_ysum DEC(24,2),

year_dep_amt DEC(17,2),

year_dep_cnt INT,

year_oth_amt DEC(17,2),

year_oth_cnt INT,

year_d_sum DEC(17,2),

year_c_sum DEC(17,2),

year_d_cnt INT,

year_c_cnt INT,

constraint P_pk01_acct_saacct primary key (record_date, dep_acct_no, curr_cd, curr_iden)

)

in dms_data

index in dms_idx

获取数据库中现有存储过程

select substr(procschema,1,15),substr(procname,1,15) from syscat.procedures; select * from syscat.procedures where procschema='XXGL'

获取当前时间

select current time from (values 1) as test;

select current date from (values 2) as test;

select (current_date)- 2 year,(current_date)+ 1 day,current_timestamp + 1 hour from (values 1) test

在列中查询以删除重复的记录

我们有一个表,字段A有重复的记录,我们想要编写一个SQL 查询来让字段A作为主键。在这样的情况下,我们需要一个删除查询来删除重复的记录,这样字段A才能具有惟一的数值。

要删除重复的数据行,可以使用如下的语句:

DELETE FROM my_table

WHERE rowid NOT IN ( SELECT MAX(ROWID) FROM my_table

GROUP BY colA,colB,colC );

在GROUP BY子句中,列出你的表中所有的字段,或者你认为应该成为主键字段的字段。子查询可以得到这些分组的最大行id。DELETE可以删除所有这些行id的数值。

将表中数据导出到文件(.del,.xls,.txt)

方法一:

export to of del select * from

方法二:shell里面操作

select * from

>

将文件中数据导入到表中:

db2 "import from *.txt of del insert into 表"

建表的时候可以设置列为自动增长的

CREATE TABLE T1 (

ID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 0, INCREMENT BY 1, NO CACHE ),

PRIMARY KEY ( ID) ) ;

在DB2/400中如何检索一个表名中含有'.'号的表

例如:

如果直接strsql->

SELECT * FROM ABIS/ABC.ABC

系统将会报错:“Token . was not valid.“

解决的方法是用双引号将'.'括起来

SELECT * FROM ABIS/"ABC.ABC"

即可。

如果库名也是这种情况,一样处理即可

SELECT * FROM ABIS/ABC.ABC

在AS400中不应该这样写的。如果ABC是一个数据库那么你应该这样写

SELECT * FROM ABIS/ABC