gpt4 book ai didi

arrays - 如何将查询与数组一起使用

转载 作者:行者123 更新时间:2023-12-03 01:13:43 24 4
gpt4 key购买 nike

我在Oracle中使用数组参数制作了一个过程:

create or replace PACKAGE my_pkg AS

TYPE USER_ID_TYPE IS TABLE OF VARCHAR2(50) INDEX BY BINARY_INTEGER;

create or replace procedure my_proc (my_id varchar2, ids USER_ID_TYPE)
is
xxxx xxxx xxxx ....
end;

我想在 sqldeveloper 中测试它。

我该怎么做?

我尝试过这样的:

exec('1010', ('111', '222')) -> fail 

exec('1010', ['111', '222']) -> fail

exec('1010' ARRAY('111', '222')) -> fail

我只想将 sqldeveloper 中的过程与数组一起使用。

最佳答案

在最近发布的 Oracle 数据库 18.1 版本中(可在 livesql.oracle.com 以及 Oracle Cloud 上免费探索),您可以使用限定表达式来执行您想要的操作:构造一个关联表达式过程调用中的“动态”数组:

CREATE OR REPLACE PACKAGE my_pkg
AS
TYPE user_id_type IS TABLE OF VARCHAR2 (50)
INDEX BY BINARY_INTEGER;
END;
/

CREATE OR REPLACE PROCEDURE my_proc (
my_id VARCHAR2, ids my_pkg.user_id_type)
IS
BEGIN
DBMS_OUTPUT.put_line ('COUNT = ' || ids.COUNT);
END;
/

BEGIN
my_proc ('steven',
my_pkg.user_id_type (1 => '111', 2=> '222'));
END;
/

Package created.
Procedure created.
COUNT = 2

查看我的LiveSQL script更详细地探索数组的限定表达式。

关于arrays - 如何将查询与数组一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49775854/

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