是否可以创建一个存储过程,用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;
发布于 2019-01-04 03:40:00
我认为你可以在一个变量中构造并执行它。它应该可以工作。
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;
/
https://stackoverflow.com/questions/54028618
复制相似问题