问一个关于db2的动态SQL执行问题,谢谢

阿三 2008-11-04 02:10:17
select语句不能动态执行

请教个问题,在我的存储过程中有这么2句话:
set aaa ='create view aa as ' || runsql;
execute aaa;
runsql是个变量,它在运行中得到的是一个select语句,比如select * from yyy
这个存储过程编译没有问题,在运行到这一句时会有错:SQL0518N 在 EXECUTE 语句中命名的语句未处于预编译状态,或者是一个 SELECT 或 VALUES 语句。
这说明DB2在动态执行sql时,是不能有select的,那么我应该怎么实现呢?runsql每次得到的select语句都不同。
谢谢!
...全文
277 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuweny925927 2012-02-21
  • 打赏
  • 举报
回复
我也遇到同样的问题了,求高手指教
阿三 2008-11-04
  • 打赏
  • 举报
回复
现在用的DB2版本是9,是不是和版本有关系的,望大家指点一下
gwsr 2008-11-04
  • 打赏
  • 举报
回复
预编译了,可是实验结果还是不行
liyan93834183 2008-11-04
  • 打赏
  • 举报
回复
select语句需要编译
用这个实现
PREPARE S1 FROM sql;
EXECUTE S1;

5,889

社区成员

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

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