通过动态本机SQL选择命令 [英] Select Command Through Dynamic native SQL
本文介绍了通过动态本机SQL选择命令的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想通过在运行时提供表名作为存储过程中的输入参数来通过Dynamic native SQL执行选择命令查询.
我的代码是这样的:---
创建 或替换过程 emp_insert_16
(Temp varchar2)
是
类型 Cur 是 ref 光标;
ptr Cur;
V_Query varchar2( 500 );
V_First varchar2( 30 );
开始
V_Query:= ' 从' || Temp;中选择名字
打开 ptr 用于 V_Query;
环形
获取 ptr 进入 V_First;
退出 何时 ptr%NOTFOUND;
结束循环;
关闭 ptr;
结束 emp_insert_16;
声明
str varchar2( 500 );
new_temp varchar2( 50 ):= ' & Table_Name' ;
开始
str:= ' 开始emp_insert_16(:a);结束;';
执行立即执行str
使用 new_temp;
结束;
但是发生错误:-ORA-00923:在预期位置找不到关键字.
请为此提供适当的解决方案.
谢谢.
Shilpi
解决方案
在from之后添加一个空格并检查:
V_Query:= ' 从' || Temp;中选择名字pre>
I want to execute a select command query through Dynamic native SQL by providing table name at run time as input parameter in a store procedure.
My Code is Like that:---
create or replace procedure emp_insert_16
( Temp varchar2)
Is
Type Cur is ref Cursor;
ptr Cur;
V_Query varchar2(500);
V_First varchar2(30);
Begin
V_Query:='Select First_Name from' ||Temp;
open ptr for V_Query;
Loop
Fetch ptr into V_First;
Exit WHEN ptr%NOTFOUND;
End Loop;
Close ptr;
end emp_insert_16;
Declare
str varchar2(500);
new_temp varchar2(50):='&Table_Name';
Begin
str:='Begin emp_insert_16(:a); end;';
execute Immediate str
using new_temp;
end;
But Error Occur:- ORA-00923 : From Keyword Not found where expected.
please provide me appropriate solution for this.
Thanking You.
Shilpi
解决方案
Add a space after the from and check :
V_Query:='Select First_Name from ' ||Temp;
这篇关于通过动态本机SQL选择命令的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文