有没有人可以帮我写一个用PL/SQL写的动态查询,把表名定义为动态查询中的一个变量(换句话说,我需要写一个接受表名为变量的动态查询)?我认为这可以通过游标来完成,但是我不知道如何将我的表名作为变量放入游标中。
发布于 2019-11-09 15:00:00
这是实现这一点的一种方法(如果这就是你要找的):
SQL> create or replace procedure p_test (par_tab in varchar2,
2 par_out out sys_refcursor
3 )
4 is
5 begin
6 open par_out for 'select * from ' || dbms_assert.sql_object_name(par_tab);
7 end;
8 /
Procedure created.
SQL> var l_out refcursor
SQL> exec p_test ('dept', :l_out);
PL/SQL procedure successfully completed.
SQL> print :l_out
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
SQL>https://stackoverflow.com/questions/58777119
复制相似问题