是否可以创建一个存储过程,该存储过程调用带有select语句中的参数和FROM子句中的另一个参数的SQL语句?
在我看来这是不可能的,但是我对pl / sql不太了解。
下面的代码当然无法正常工作。任何帮助将不胜感激。
CREATE OR REPLACE PROCEDURE procedure1 table1 VARCHAR(100)
field1 VARCHAR(100)
IS
BEGIN
FOR I IN (SELECT field1
FROM TABLE (table1)
WHERE field1 IS NOT NULL)
LOOP
DBMS_OUTPUT.PUT_LINE ('Field_name : ' || I.FIELD_NAME);
END LOOP;
END procedure1;
答案 0 :(得分:0)
我认为您可以在变量中构造SQL并执行它。应该可以。
CREATE OR REPLACE PROCEDURE CRAZY_PROC (tableName VARCHAR2,
fieldName VARCHAR2)
AS
sqlString VARCHAR2 (1000);
BEGIN
sqlString := 'select ' || fieldName || ' from ' || tableName;
DBMS_OUTPUT.PUT_LINE (sqlString);
END;
/