从包含FROM子句的参数创建SQL

时间:2019-01-03 19:27:40

标签: plsql oracle11g

是否可以创建一个存储过程,该存储过程调用带有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;

1 个答案:

答案 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;
/