db2常用语句

导出ddl
 db2look -d  CESHI1 -e -o db.sql -i db2inst1 -w Coqais011
 db2look -d  GFL -e -o E:db.sql -i db2admin -w 123
系统存储过程
QueryInfo info = new QueryInfo();
                            info.NamedQuery = "SYSPROC.ADMIN_CMD";
                            info.Parameters.Add("PR_SQL", "reorg table " + tableName);
                            Dao.ExecuteNonQuery(info);

备份
db2 BACKUP DATABASE dbname
恢复
db2 RESTORE DATABASE dbname
a.服务端安装
b.客户端安装
1.建数据库
create database HRA_GF 
2.建信道
catalog tcpip node gf remote 192.168.2.252 server 50000
3.1 别名
catalog database HRA_GF as hServer at node gf
3.2 数据库挂在信道上
catalog database HRA_GF at node gf
3.3 terminate 刷新
3.4 db2
4.连接数据库
connect to HRA_GF user db2admin using Hhgf2017
5.删除节点
uncatalog node gf

6. 获取序列下一个值
     select nextval for BAS_MODULE_SEQ  from sysibm.sysdummy1
7.创建函数结合序列值获取
   
  7.1 CREATE function BAS_SEQ ()
            RETURNS BIGINT
            LANGUAGE SQL
            CONTAINS SQL
            NO EXTERNAL ACTION
            DETERMINISTIC
            BEGIN ATOMIC
               Declare cd BIGINT;   --时间  
           set cd=next value for BAS_MODULE_SEQ;
            RETURN cd;  
            END ;
  7.2
CREATE  FUNCTION GET_DISCOUNT_FACTOR
(
    v_compute_date  date,
    v_reference_date  date,
    v_index_price_factor_id  bigint
)
RETURNS BIGINT
          LANGUAGE SQL
          NOT DETERMINISTIC
          READS SQL DATA
          STATIC DISPATCH
          CALLED ON NULL INPUT
          EXTERNAL ACTION
          INHERIT SPECIAL REGISTERS
            BEGIN ATOMIC
            Declare RESULT bigint;
    set  RESULT=(select count(1) 
                  from mkt_zero_rate_data
                  where compute_date = v_compute_date
                  and reference_date = v_reference_date
                  and index_price_factor_id = v_index_price_factor_id);

     IF RESULT=0
       then 
       RETURN 0;
       ELSE

         SET RESULT=(
                         select discount_factor   from mkt_zero_rate_data
                                    where compute_date = v_compute_date
                                    and reference_date = v_reference_date
                                    and index_price_factor_id = v_index_price_factor_id);
                                  
           END IF;                         
  return Result;
END;

CREATE  FUNCTION FN_GETFLOWURL(p_createUrl  varchar(255),p_nodeUrl  varchar(255),p_FormCode  varchar(255),p_FormType  varchar(255))
RETURNS varchar(255)
          LANGUAGE SQL
          NOT DETERMINISTIC
          READS SQL DATA
          STATIC DISPATCH
          CALLED ON NULL INPUT
          EXTERNAL ACTION
          INHERIT SPECIAL REGISTERS
            BEGIN ATOMIC
            declare v_pos bigint;
            declare v_tmp bigint;
            declare v_url varchar(255);
         set  v_tmp=(select INSTR(p_nodeUrl,'.aspx') from SYSIBM.SYSDUMMY1);
if v_tmp>0 then
 set v_url = p_nodeUrl;
else --CreateUrl+??Url = ??Url ---??CreateUrl??Node??????(?,&)
 set v_pos=(select INSTR(p_createUrl,'Node=')  from  SYSIBM.SYSDUMMY1);
if v_pos>0 then
 set v_url=SUBSTR(p_createUrl,1,v_pos-2);
else
set v_url=p_createUrl;
end if;
---CreateUrl+??Url??????(?,&)
set v_pos=(select INSTR(v_url,'?')  from  SYSIBM.SYSDUMMY1);
if v_pos>0 then
set v_url= v_url || '&' || p_nodeUrl;
else
set v_url= v_url || '?' || p_nodeUrl;
end if;
end if;

set v_url=v_url || '&'||'FormCode=' || p_FormCode || '&'||'FormType=' || p_FormType;
return v_url;
end;
8. 存储过程
CREATE  PROCEDURE PR_INSERT(IN pr_sql  VARCHAR(550))
 LANGUAGE SQL   
 SPECIFIC set_variables  
begin
    execute immediate  pr_sql;
end ;

9.参数化查询
       var info = new QueryInfo();
            info.CustomSQL = "select * from sys_user where user_id=?";
            info.Parameters.Add("user_id", 1002);
            var dt = Dao.ExcuteDataSet(info).Tables[0];
10.load 
load from c:AA20170828154805.del of del insert into aa

  cmd = cn.CreateCommand();
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.CommandText = @"load from c:AA20170828154805.del of del insert into aa";
                int ii = cmd.ExecuteNonQuery();

11.非空约束
alter table tableName alter columnName set not null;
12.添加主键
alter table tableName add constraint primary key(主键id)
13.truncate table命令
truncate table tableName immediate;
14.reorg table tableName


15.db2 数据库没有足够大的临时表空间,新建一个足够大的表空间,解决问题
create BUFFERPOOL GFPOOL  SIZE 500 PAGESIZE 32K;
CREATE TEMPORARY TABLESPACE TEMP PAGESIZE 32K MANAGED BY DATABASE USING
(
FILE 'STEALTH2/TEMP02' 128000
) EXTENTSIZE 80 bufferpool GFPOOL;

16.db2分页语法

 
 select * from
 (select t.*,rownumber() over (order by id asc) as rowid from sys_office t) a
 where a.rowid>=1 and a.rowid<=3;
 

17. 不记录日志清空表
alter table TRAN_STRUCTURE activate not logged initially with empty table;

18.查看表id和表空间
select * from syscat.tables where tableid=3852

19.日志设置
update db cfg for ceshi1 using LOGFILSIZ 125000 
20 查看表空间的使用情况
 a.创建表空间
 CREATE TEMPORARY TABLESPACE TEMP PAGESIZE 32K MANAGED BY DATABASE USING
(
FILE 'STEALTH2/TEMP02' 128000
) EXTENTSIZE 80 bufferpool GFPOOL;
 b.list tablespace containers for 1 show detail
 c.扩展表空间 alter  TABLESPACE TEMP add (file '/home/db2inst1/db2inst1/NODE0000/CESHI1/004' 500m)

20.不记录事务日志
alter table   
  TRAN_TRANSACTION
  --, RSK_BOOK_TRAN_SIMULATION, RSK_LEASE_TRAN_ADJUST, RSK_LEASE_TRANSACTOIN, RSK_TRANSACTION_LOG 
activate not logged initially;
 
 21. 修改数据类型

alter table  ETL_VERIFY_CHECK alter column IS_NOT_NULL set data type int ;
reorg table ETL_VERIFY_CHECK;

建库
--重启数据库
FORCE APPLICATION ALL 
DB2STOP
DB2START 

--创建数据库
CREATE DATABASE GFL USING CODESET UTF-8 TERRITORY US COLLATE USING SYSTEM USER TABLESPACE MANAGED BY DATABASE USING (FILE 'd:DB2dataGFLsdetbsp' 51200)

CONNECT TO GFL 

--创建缓冲池(使用32k的pagesize)
create bufferpool GFPOOL size 12800 pagesize 32K
create bufferpool GFPOOL1 size 12800 pagesize 32K

--创建表空间并使用32k的pagesize和自定义的缓冲池
CREATE REGULAR TABLESPACE regtbs PAGESIZE 32 K MANAGED BY DATABASE USING ( FILE 'D:DB2NODE0000GFL
egtbs' 2g) bufferpool GFPOOL
CREATE REGULAR TABLESPACE idxtbs PAGESIZE 32 K MANAGED BY DATABASE USING ( FILE 'D:DB2NODE0000GFLidxtbs' 1g) bufferpool GFPOOL
CREATE LONG TABLESPACE lobtbs PAGESIZE 32 K MANAGED BY DATABASE USING ( FILE 'D:DB2NODE0000GFLlobtbs' 1g) bufferpool GFPOOL1
CREATE USER TEMPORARY TABLESPACE sdespace PAGESIZE 32 K MANAGED BY SYSTEM USING ('D:DB2NODE0000GFLsdespace' ) bufferpool GFPOOL1

表空间自增长
 alter tablespace lobtbs autoresize yes increasesize 10240K maxsize none;

--授权表空间给用户
grant use of tablespace 

--授权表空间
GRANT USE OF TABLESPACE regtbs TO PUBLIC  
GRANT USE OF TABLESPACE lobtbs TO PUBLIC 
GRANT USE OF TABLESPACE idxtbs TO PUBLIC  
GRANT USE OF TABLESPACE sdespace TO PUBLIC 

COMMENT ON TABLESPACE sdespace IS '' 

--优化数据库配置
update db cfg for GFL using APPLHEAPSZ 2048
update db cfg for GFL using APP_CTL_HEAP_SZ 2048
update db cfg for GFL using LOGPRIMARY 10
update db cfg for GFL using LOGFILSIZ 1000

--重启数据库
FORCE APPLICATION ALL 
DB2STOP FORCE 
DB2START


--授予sde用户DBADM权限
grant DBADM on database to user db2admin

--重启数据库
FORCE APPLICATION ALL 
DB2STOP FORCE 
DB2START

3.去重

long count = 0;
//删除的时候,保留最老的记录
var delsql1 = $@" delete from
(
select {repetColumns}, row_number() over
(PARTITION by
{repetColumns} order
by
{repetColumns}
) as rn from {importTable} where 1=1 {where}
) t1 where t1.rn > 1";
//删除的时候,保留最新的记录


var delsql2 = $@"DELETE from
(
select {repetColumns}, row_number() over
(PARTITION by {repetColumns}
order by {repetColumns} asc
) as rn from {importTable}

) t1 where rn<
(

select max(rn) from
(
select {repetColumns}, row_number() over
(PARTITION by {repetColumns}
order by {repetColumns} asc
) as rn from {importTable} ) t1
)
";
string sql = style == DeleteStyle.KeepNew ? delsql2 : delsql1;
count = Dao.ExecuteNonQuery(new Framework.QueryInfo() { CustomSQL = sql });
return count;

 
原文地址:https://www.cnblogs.com/kexb/p/7856415.html