我有一个无法解决的问题。也许您知道如何解决它。
我确实有一个给定的参数表,如下所示:
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 http://www.adp-gmbh.ch/ora/plsql/coll/return_table.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)