gpt4 book ai didi

oracle - 将存储在 PL/SQL 变量中的值传递到 IN 子句中

转载 作者:行者123 更新时间:2023-12-02 08:33:11 24 4
gpt4 key购买 nike

我的代码如下:

DECLAREvr_arr_list VARCHAR2(100) := `7,3,4';BEGINFOR CX IN (Select ID, NAME from TBL_DEMO where ID IN (vr_arr_list))LOOPDBMS_OUTPUT.PUT_LINE(CX.ID || '-' || CX.NAME);END LOOP;/

我也尝试过使用

DBMS_UTILITY.comma_to_table (list => REGEXP_REPLACE (vr_arr_list, '(^|,)','\1x'), tablen => l_ID_count, tab => l_ID_array);

但是传递数组 l_ID_array 也不起作用。

请帮忙。

最佳答案

另一种方法是将嵌套表与 TABLE 运算符结合使用

create type nt_vr_arr_list is table of number;

DECLARE
vr_arr_list nt_vr_arr_list := nt_vr_arr_list(100, 200, 330);
BEGIN
FOR cx IN (SELECT id, name
FROM tbl_demo
WHERE id IN (SELECT COLUMN_VALUE FROM TABLE(vr_arr_list))) LOOP
DBMS_OUTPUT.put_line('ID: ' || cx.id || ' Name: ' || cx.name);
END LOOP;
END;

关于oracle - 将存储在 PL/SQL 变量中的值传递到 IN 子句中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28737346/

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