如何使用 pl/SQL 函数在 LOV 项中列出数字(例如从 1 到 20)?返回值与显示值相同

Posted

技术标签:

【中文标题】如何使用 pl/SQL 函数在 LOV 项中列出数字(例如从 1 到 20)?返回值与显示值相同【英文标题】:How do I list numbers -for example from 1 to 20- in a LOV item by using pl/SQL function? Return values are same as display values 【发布时间】:2021-02-04 17:11:16 【问题描述】:

我正在尝试通过在 pl/SQL 函数中使用循环来在 LOV 项中列出数字(例如从 1 到 20)。这一定是可能的,但我还没有成功。感谢您的宝贵帮助。

【问题讨论】:

它必须是 PL/SQL 函数而不是 SQL 查询吗?您当然可以编写一个返回 20 行的流水线表函数。但是 SQL 查询将涉及更少的代码。 是的,你是对的。如果我创建一个包含两列的表,第一列用于 id,第二列用于数字,那么我可以编写如下 SQL 查询:select number d, id r from numbers;但我不想只为数字创建一个表格。我想使用循环或类似的东西。 您可以编写一个生成数字 1-20 的 SQL 查询,而无需创建 numbers 表。这可以接受吗?还是需要用到PL/SQL? 是的,这是可以接受的。请问可以写吗? 【参考方案1】:

不需要做pl/sql,这可以通过纯SQL中的伪列LEVELCONNECT BY子句来实现。对于日期列表、数字列表等选择非常有用。对于从 1 到 20 的数字列表,您可以这样做:

SELECT
  level  AS display_value,
  level  AS return_value
  FROM
  dual
CONNECT BY
  level <= 20

【讨论】:

这里有更多解释:geeksforgeeks.org/….

以上是关于如何使用 pl/SQL 函数在 LOV 项中列出数字(例如从 1 到 20)?返回值与显示值相同的主要内容,如果未能解决你的问题,请参考以下文章

无法从 SQL*Plus 创建和执行 PL/SQL 过程

如何计算 SQL 或 PL/SQL 中字符串末尾的此字符的实例数?

pl/sql:函数

使用 PL/SQL 列出指定目录中的文件

Oracle PL/SQL 引用游标如何

如何用 pl/sql 中的记录项初始化数组?