与输入动态表名PLSQL动态游标创建
问题描述:
你好我的PL/SQL函数是与输入动态表名PLSQL动态游标创建
create or replace
PROCEDURE DiffrencesIdentifyerProc(db_nameFirst VARCHAR2,db_nameSecond VARCHAR2,table_name VARCHAR2) IS
dbremort varchar2(100):= db_nameFirst;
dblocal varchar2(100):= db_nameSecond;
tableName varchar2(100) := table_name;
CURSOR cur IS
SELECT * FROM s1.ENTITYFIELDS MINUS SELECT * FROM s2.ENTITYFIELDS;
BEGIN
FOR e IN cur
LOOP
dbms_output.put_line(e.ATTACH_NAME);
END LOOP;
END DiffrencesIdentifyerProc;
我要的是在
CURSOR cur IS
SELECT * FROM s1.ENTITYFIELDS MINUS SELECT * FROM s2.ENTITYFIELDS;
选择部分通过paramters被设置好的像
SELECT * FROM dbremort.dbremort MINUS SELECT * FROM dbremort.dbremort ;
我该怎么做?
答
编译/构建查询到varchar2
(或clob
当Oracle 11g或更高版本)变量,然后使用native dynamic SQL的open for ...
语句打开游标并fetch
语句从中获取。
请记住,您必须拥有静态声明的结构才能从光标获取数据,无论如何,您的动态查询必须具有与identical (or implicitly convertable) data types相同数量的选定列。