求助db2cmd如何执行sql文件并传递参数?

heixiong2322 2011-08-03 05:26:27
例如,aa.sql内容是:select * from name;
执行db2 -tvf aa.sql时传递一个表名过去该怎么实现呢?
...全文
534 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
heixiong2322 2011-08-17
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wwwwb 的回复:]

示例:
declare sSql varchar(1000)
set sSql ='select * from ' || 'tt';
prepare s1 from sSql;
execute s1;
[/Quote]

3Q
WWWWA 2011-08-04
  • 打赏
  • 举报
回复
这种要求一般是通过动态SQL来解决的
wwwwb 2011-08-04
  • 打赏
  • 举报
回复
示例:
declare sSql varchar(1000)
set sSql ='select * from ' || 'tt';
prepare s1 from sSql;
execute s1;
heixiong2322 2011-08-04
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wwwwa 的回复:]

这种要求一般是通过动态SQL来解决的
[/Quote]
能不能说详细点啊......
zhaojianmi1 2011-08-03
  • 打赏
  • 举报
回复
没有这样往文件里传参数的
heixiong2322 2011-08-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zhaojianmi1 的回复:]

没法传
[/Quote]
oracle 中 在*.sql文件里可以用&1、&2、... &9 ... 变量名称去获取并使用变量。

以scott用户, 举例如下:
在C盘的根目录下写一个SQL文件 c:\sql1.sql

select empno,ename,job,sal from emp where deptno=&1 and sal>&2;

在SQL*PLUS下带参数调用 c:\sql1.sql

SQL> c:\sql1.sql 20 1500

输入被截为66个字符
原值 1: select empno,ename,job,sal from emp where deptno=&1 and sal>&2
新值 1: select empno,ename,job,sal from emp where deptno=20 and sal>1500
db2 没有类似的吗??
zhaojianmi1 2011-08-03
  • 打赏
  • 举报
回复
没法传

5,889

社区成员

发帖
与我相关
我的任务
社区描述
IBM DB2 是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBM i(旧称OS/400)、z/OS,以及Windows服务器版本
社区管理员
  • DB2
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧