oracle - 在 PL/SQL 中,我可以通过存储过程参数传递游标 FROM 子句的表模式吗?

标签 oracle plsql

在 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/

相关文章:

java - 从 PL/SQL 调用 java 时出错

database - 在 Oracle 中操作 15.000 多行

plsql - 数组必须在pl sql中声明错误

java - 从 Java 调用 PL/SQL Web Toolkit 过程

mysql - 将表转换为 0's and 1' s 的矩阵

database - Windows 中的 oracle 数据库存储在哪里

oracle - EXECUTE IMMEDIATE 结果到表类型

c# - 在 ASP.NET 中调用 PLSQL 过程

java - 如何从Java程序调用Oracle函数

sql - 验证 sql/oracle 中的电子邮件/邮政编码字段