与输入动态表名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 SQLopen for ...语句打开游标并fetch语句从中获取。

请记住,您必须拥有静态声明的结构才能从光标获取数据,无论如何,您的动态查询必须具有与identical (or implicitly convertable) data types相同数量的选定列。