在 PL/SQL 中,我想将“源”模式作为参数传递给存储过程。例如:
BEGIN
CURSOR my_cursor IS
SELECT my_field FROM <schema>.my_table
...
我希望“模式”值来自存储过程的输入参数。有谁知道我怎么能做到这一点?
附言对不起,如果这是一个愚蠢的简单问题,但我是 PL/SQL 的新手,必须快速编写一些函数。
最佳答案
除了 Mark Brady 所说的,另一个动态 SQL 选项是使用 REF CURSOR。由于您的示例代码包含一个游标,这将是最相关的。
PROCEDURE select_from_schema( the_schema VARCHAR2)
IS
TYPE my_cursor_type IS REF CURSOR;
my_cursor my_cursor_type;
BEGIN
OPEN my_cursor FOR 'SELECT my_field FROM '||the_schema||'.my_table';
-- Do your FETCHes just as with a normal cursor
CLOSE my_cursor;
END;
关于oracle - 在 PL/SQL 中,我可以通过存储过程参数传递游标 FROM 子句的表模式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/278882/