gpt4 book ai didi

Oracle:如何创建函数返回 "SELECT * FROM tab WHERE name IN (function())"的值

转载 作者:行者123 更新时间:2023-12-01 12:40:19 25 4
gpt4 key购买 nike

我有一个我无法解决的问题。也许您对如何解决它有想法。

我确实有这样一个给定的参数表:

P_VALUE     P_NAME 
----------- ----------
X85 A_03
XH1 A_04
XH2 A_04
XH3 A_04
C84 A_05

如您所见,有多个条目的参数。目前这个参数是这样使用的:

SELECT * FROM tablex
WHERE code IN (SELECT p_value
FROM parameter_table
WHERE p_name LIKE 'A_04');

由于查询非常大,因此经常使用这些参数子选择。我试图在 Oracle 中实现一个函数来获取我的参数。只要每个参数只有 1 行,这就非常有效。当我想在“IN-Statements”中使用它时,它不起作用,因为函数只返回一个值。

--WORKS
SELECT * FROM tablex
WHERE code = (f_get_param('A_03'));

--DOES NOT WORK
SELECT * FROM tablex
WHERE code IN (f_get_param('A_04'));

请注意,我需要它来处理纯 SQL 语句,因此过程将无法运行,因为它们只适用于 PL/SQL。

如果有好的想法或帮助,我将非常感激!

最佳答案

使用集合。这里有一个例子 http://www.adp-gmbh.ch/ora/plsql/coll/return_table.html

关于Oracle:如何创建函数返回 "SELECT * FROM tab WHERE name IN (function())"的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25524281/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com