db2脚本
1. db2关于脚本报错sql10007N Message "-1390" could not be retrieved. Reason code: "3".
crontab里执行是需要引入用户变量的,用户profile文件中肯定引入了DB2的profile,举个例子,实例用户是db2inst1的话,可以在脚本里加段代码先执行 . /home/db2inst1/.profile
如果还是报错,确认下你连接的实例是否正确,DB2INSTANCE=db2inst1;export DB2INSTANCE。
2. IBM-db2的一个脚本问题
很简单吗,把你的CONNECT语句放在test.sql里就行了
3. DB2数据库定时自动清理表数据的脚本语句
这个根据数据量来的:
若数据不大:
用crontab 写个脚本语言,先获取当前时间 比如php 为$day=inter(date("d",time()));//获取当前日期
if($day=1){//判断是否是月初
do{//数据大分页删除;根据时间取
$return = delData(time<strtotime(“-3 month”));
}while($total >(page-1)*每页数量);
}
2.定时存储过程
CREATE EVENT `e_call` ON SCHEDULE EVERY 3 MONTH eENDS 'time' ON COMPLETION NOT PRESERVE ENABLE DO call p_chk();
4. DB2 命令行中如何执行sql脚本
无论是windows系统,还是linux或AIX
你可以在实例用户下,先键入 db2 这个命令,进入到db2命令行,然再执行creat database mydb
或者
你可以在系统命令行下直接执行
db2 create database mydb
或
db2 "create database mydb"
5. DB2建表脚本中“IN TS_STATIC INDEX IN TS_STATIC_IDX; ”这两句语句是什么意思啊下面是完整的脚本。谢谢
IN TS_STATIC
INDEX IN TS_STATIC_IDX;
后面的
TS_STATIC
TS_STATIC_IDX
是指表空间, 也就是这个表存在 这个表空间里面.
如果不加 , 系统会默认创建到 系统的表空间
6. db2中循环脚本怎么编写
delete from <table_name> where <data><date_sub(date(now()),interval 12 month);
例
mysql> select * from name where csny>date_sub(date(now()),interval 1 month);
+----+--------+------+------------+
| id | xm | xb | csny |
+----+--------+------+------------+
| 16 | Apri26 | gl | 2012-04-26 |
+----+--------+------+------------+
1 row in set (0.00 sec)
mysql> delete from name where csny>date_sub(date(now()),interval 1 month);
Query OK, 1 row affected (0.14 sec)
mysql> select * from name where csny>date_sub(date(now()),interval 1 month);
Empty set (0.00 sec)
7. 请教高手:DB2 SQL脚本批量执行如何保存日志问题
可以在命令编辑器或者Windows 的DB2 命令窗口或者 Linux 的shell 中执行SQL 脚本。在windows 的DB2 命令窗口或者 linux 的shell 中执行SQL语句,可以使用下面的命令执行script1.sql脚本:
db2 -t -v -f script1.sql -z script1.log
或者:
db2 –tvf script1.sql –z script1.log
在上面的命令中,
-t 表示语句使用默认的语句终结符——分号;
-v 表示使用冗长模式,这样 DB2 会显示每一条正在执行命令的信息;
-f 表示其后就是脚本文件;
-z 表示其后的信息记录文件用于记录屏幕的输出,方便以后的分析(这是可选的,但我们建议使用该选项)。
当使用了-t选项而没有标明语句终结符,则分号(;)会默认为语句的终结符。有时可能会出现使用另外的终结符的情况,例如用SQL PL 编写的的脚本使用其它的符号而不是默认的分号,因为分号在SQL PL 是用于定义数据库对象过程中的语句结束。
8. shell脚本执行db2操作不连续
具体解决方法为:
方法一、适合所有格式的mysql数据库,通过对数据库导出导进写个脚本定时执行:
1.导出整个数据库 mysqlmp -u 用户名 -p 数据库名 > 导出的文件名 mysqlmp -u wcnc -psmgp_apps_wcnc > /存放路径/wcnc.sql
2.导出一个表 mysqlmp -u 用户名 -p 数据库名 表名> 导出的文件名 mysqlmp -u wcnc -p smgp_apps_wcnc users> /存放路径/wcnc_users.sql
3.导出一个数据库结构 mysqlmp -u wcnc -p -d --add-drop-table smgp_apps_wcnc >/存放路径/wcnc_db.sql
9. 如何在DB2命令窗口执行sql脚本
DB2 命令行中执行sql脚本如下:
db2 => connect to dbName user xxx using password
db2 => sql语句
如果要执行一个sql脚本文件:
db2 => quit
c:\> db2 -tvf sql文件名
db2 -td@ -f filename
@是语句结束符。
E:\>db2 ? options
db2 [option ...] [db2-command | sql-statement |
[? [phrase | message | sqlstate | class-code]]]
option:-a、-c、-e{c|s}、-finfile、-lhistfile、-n、-o、-p、-rreport、-s、-t、
-td;、-v、-w、-x 和 -zoutputfile。
选项 描述 缺省设置
------ ---------------------------------------- ---------------
-a 显示 SQLCA OFF
-c 自动落实 ON
-e 显示 SQLCODE/SQLSTATE OFF
-f 读取输入文件 OFF
-l 将命令记录到历史文件中 OFF
-n 除去换行字符 OFF
-o 显示输出 ON
-p 显示 db2 交互式提示符 ON
-r 将输出报告保存到文件 OFF
-s 在命令出错时停止执行 OFF
-t 设置语句终止字符 OFF
-v 回送当前命令 OFF
-w 显示 FETCH/SELECT 警告消息 ON
-x 不打印列标题 OFF
-z 将所有输出保存到输出文件 OFF
注意:
使用 DB2OPTIONS 环境变量定制选项缺省值。
紧跟选项字母后的减号(-)使该选项关闭。
使用 UPDATE COMMAND OPTIONS 更改选项设置(以交互式或
文件输入方式)。
只能提供nt环境下编写脚本的例子给你以供参考:
脚本样例:
db2 connect to yourdb user yourname using yourpassword
db2 insert into newuser(username,password,email) values('Amy','1234','[email protected]')
db2 insert into newuser(username,password,email) values('Judy','1234','[email protected]')
db2 commit
db2 disconnect yourdb
运行脚本: 运行db2cmd X:\XXX.bat
以下摘自本论坛的FAQ可参考:
"
在命令窗口中运行DB2脚本,可用 db2 -svtf 脚本文件名 来实现。
例如,脚本文件名为sample.sql,运行:db2 -svtf sample.sql
参数中:
s 代表遇到错误时中止运行脚本
v 代表输出结果到屏幕
t 指以;号作为每行的分隔符
f 指后面需跟脚本文件名 "---此摘录版权归斑竹非本人所有
具体在AS400如何编写脚本非常遗憾.
db2 -x select SERIALNO from tabname where clause
C:>db2 attach to db2164 user ccp
输入 ccp 的当前密码:
实例连接信息
实例服务器 = DB2/NT 8.2.0
授权标识 = CCP
本地实例别名 = DB2164
C:>db2 connect to dw164 user ccp
输入 ccp 的当前密码:
数据库连接信息
数据库服务器 = DB2/NT 8.2.0
SQL 授权标识 = CCP
本地数据库别名 = DW164
C:>db2 select * from CCP_STS1 fetch first 2 rows only with ur
CUST_ID NOW_PRED_S LOAD_TIME
-------------------- -------------------- --------------------------
3094736. ZFS 2008-05-07-10.02.00.453000
3145886. ZFS 2008-05-07-10.02.00.453000
2 条记录已选择。
C:>db2 list command options
命令行处理器选项设置
后端进程等待时间(秒) (DB2BQTIME) = 1
连接至后端的重试次数 (DB2BQTRY) = 60
请求队列等待时间(秒) (DB2RQTIME) = 5
输入队列等待时间(秒) (DB2IQTIME) = 5
命令选项 (DB2OPTIONS) = +m
选项 描述 当前设置
------ ---------------------------------------- ---------------
-a 显示 SQLCA OFF
-c 自动落实 ON
-d 检索并显示 XML 声明 OFF
-e 显示 SQLCODE/SQLSTATE OFF
-f 读取输入文件 OFF
-i 显示 XML 数据并带有缩进 OFF
-l 将命令记录到历史记录文件中 OFF
-m 显示受影响的行数 OFF
-n 除去换行字符 OFF
-o 显示输出 ON
-p 显示交互式输入提示符 ON
-q 保留空格和换行符 OFF
-r 将输出保存到报告文件 OFF
-s 在命令出错时停止执行 OFF
-t 设置语句终止字符 OFF
-v 回传当前命令 OFF
-w 显示 FETCH/SELECT 警告消息 ON
-x 不打印列标题 OFF
-z 将所有输出保存到输出文件 OFF
C:>db2set DB2OPTIONS=-x
C:>db2 select * from CCP_STS1 fetch first 2 rows only with ur
4654908. ZFS 2008-05-07-10.02.00.453000
3716687. ZFS 2008-05-07-10.02.00.453000
10. db2 脚本如何执行 批处理文件
什么样的
批处理文件
?
如果文件里面都是
sql语句
,可以在命令行中
db2
-tvf
filename即可
如果脚本中包含db2
开头的提示符,建议做成
bat文件
来执行