Mas*_*n_M 2 arrays oracle parameters plsql
我在Oracle中使用array参数创建了一个过程:
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;
Run Code Online (Sandbox Code Playgroud)
我想在sqldeveloper中测试一下.
我怎样才能做到这一点?
我试过这样的:
exec('1010', ('111', '222')) -> fail
exec('1010', ['111', '222']) -> fail
exec('1010' ARRAY('111', '222')) -> fail
Run Code Online (Sandbox Code Playgroud)
我只想在sqldeveloper中使用带有数组的过程.
在最近发布的18.1版Oracle数据库(可在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
Run Code Online (Sandbox Code Playgroud)
查看我的LiveSQL脚本,更详细地探索数组的限定表达式.