Oracle-pl/sql execute immediate问题

项目合作 项目合作 主题:1030 回复:2135

Oracle-pl/sql execute immediate问题

清晨说ぺ晚安 发布于 2017-10-19 字数 239 浏览 986 回复 2

这里只截取错处的部分sql
execsql := 'select substr(name,1,:1) from pop_person group by substr(name,1,:1)';
execute immediate execSql
using p_name;

为什么我这样运行不行,会报错.
我要怎么改呢?
谢谢

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

评论(2

想挽留 2017-10-20 2 楼

两个绑定变量,对应2个变量。

execsql := 'select substr(name,1,:1) from pop_person group by substr(name,1,:1)';
execute immediate execSql
using p_name, p_name;

甜柠檬 2017-10-19 1 楼

execsql := 'select substr(name,1,'||p_name||') from pop_person group by substr(name,1,'||p_name||')';
execute immediate execSql;

可以这样尝试一下,如果不行的话,建议创建一个调错的表,将要执行的动态SQL作为文本传入到相应的表字段,将程序拷出来执行一下。然后对自己的代码错误进一步定位,最后修改成功。