在 PL/SQL 中的选择查询中引用数组元素

Posted

技术标签:

【中文标题】在 PL/SQL 中的选择查询中引用数组元素【英文标题】:Referencing an array element in select Query in PL/SQL 【发布时间】:2012-11-07 06:17:03 【问题描述】:

我正在编写一些 Pl/SQl,其中我使用了长度为 5 的数组变量。

然后我将另一个表的所有列名存储到上面声明的数组中。 现在我正在寻找一种解决方案,通过它我可以使用 select Query 中的 Array 元素从另一个具有列名的表中获取数据。 喜欢

arr(1):='Name'
arr(2):='Course'

PL/Sql中的Query应该是这样的(仅供参考)

select arr(1) from Mttable;

==== 当我以这种方式编写查询时会产生错误

注意-所有工作都应该在 Oracle 10g 上的 Pl/SQL 中完成

请帮忙。

【问题讨论】:

【参考方案1】:

您可以在字符串中构建查询并执行该字符串。我的 PL/SQL 生锈了,但类似于:

begin
   query := 'select ' || arr(1) || ' from Mttable';
   execute immediate query;
end;

【讨论】:

这种技术称为动态 SQL,当您需要在 SQL 中使用表名或列名作为变量时,就需要这种技术。

以上是关于在 PL/SQL 中的选择查询中引用数组元素的主要内容,如果未能解决你的问题,请参考以下文章

选择查询中的 PL/SQL 存储错误

从 PL/SQL 关联数组中的元素获取不同的值

PL/SQL集合(table)嵌套表操作实例讲解实例

在 PL/SQL 中引用动态 SQL 的标识符

带有参数的 PL/SQL 过程/函数从选择查询返回表

PL/SQL:如何从表中选择数据并输入到包接受数组类型?