oracle 动态sql 表名无效

beginexecuteimmediate'select*from:t'using'dept';end;报表名无效错误.换成executeimmediate'select... begin
execute immediate 'select * from :t' using 'dept';
end;
报表名无效错误.换成execute immediate 'select * from dept';则执行成功;
之前用替换列名是成功的,只有替换表名报错。
使用dbms_sql也遇到类似错误。
求解答~!
展开
 我来答
百度网友140bba3
2011-07-27 · TA获得超过689个赞
知道小有建树答主
回答量:242
采纳率:100%
帮助的人:132万
展开全部
试一下这个
DECLARE
TB VARCHAR2(30);
begin
TB:='DEPT';
execute immediate 'select * from '||TB||' ';
end;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
华夏日长兴
2011-07-27 · TA获得超过9593个赞
知道大有可为答主
回答量:6305
采纳率:85%
帮助的人:3751万
展开全部
begin
execute immediate 'select * from '||dept;
end;
更多追问追答
追问
成功了,但是为什么表名不能以 占位符 的方式传递参数呢,列名什么的都可以。是我方法错了,还是Oracle设定就是这样。
方法错了的话求一个正确的用占位符传递表名的方法。
追答
表名不行,但是字段可以,oracle这么个语法
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
谁是小学徒
2011-07-27 · 超过27用户采纳过TA的回答
知道答主
回答量:217
采纳率:0%
帮助的人:55.7万
展开全部
百度一下,你就知道
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式