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也遇到类似错误。
求解答~! 展开
execute immediate 'select * from :t' using 'dept';
end;
报表名无效错误.换成execute immediate 'select * from dept';则执行成功;
之前用替换列名是成功的,只有替换表名报错。
使用dbms_sql也遇到类似错误。
求解答~! 展开
展开全部
试一下这个
DECLARE
TB VARCHAR2(30);
begin
TB:='DEPT';
execute immediate 'select * from '||TB||' ';
end;
DECLARE
TB VARCHAR2(30);
begin
TB:='DEPT';
execute immediate 'select * from '||TB||' ';
end;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
begin
execute immediate 'select * from '||dept;
end;
execute immediate 'select * from '||dept;
end;
更多追问追答
追问
成功了,但是为什么表名不能以 占位符 的方式传递参数呢,列名什么的都可以。是我方法错了,还是Oracle设定就是这样。
方法错了的话求一个正确的用占位符传递表名的方法。
追答
表名不行,但是字段可以,oracle这么个语法
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
百度一下,你就知道
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询