oracle调用java数组参数_将数组数组作为输入参数传递给Oracle过程

本文介绍了如何在Oracle中创建自定义类型VARRAY和关联数组,并作为参数传递给存储过程。通过示例展示了如何定义、扩展数组以及调用过程输出数组元素。
摘要由CSDN通过智能技术生成

这是一种方法:

SQL> set serveroutput on

SQL> CREATE OR REPLACE TYPE MyType AS VARRAY(200) OF VARCHAR2(50);

2 /

Type created

SQL> CREATE OR REPLACE PROCEDURE testing (t_in MyType) IS

2 BEGIN

3 FOR i IN 1..t_in.count LOOP

4 dbms_output.put_line(t_in(i));

5 END LOOP;

6 END;

7 /

Procedure created

SQL> DECLARE

2 v_t MyType;

3 BEGIN

4 v_t := MyType();

5 v_t.EXTEND(10);

6 v_t(1) := 'this is a test';

7 v_t(2) := 'A second test line';

8 testing(v_t);

9 END;

10 /

this is a test

A second test line

为了扩展我对@ dcp的答案的评论,如果你想使用一个关联数组,这里是你如何实现那里提出的解决方案:

SQL> CREATE OR REPLACE PACKAGE p IS

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

3

4 PROCEDURE pp (inp p_type);

5 END p;

6 /

Package created

SQL> CREATE OR REPLACE PACKAGE BODY p IS

2 PROCEDURE pp (inp p_type) IS

3 BEGIN

4 FOR i IN 1..inp.count LOOP

5 dbms_output.put_line(inp(i));

6 END LOOP;

7 END pp;

8 END p;

9 /

Package body created

SQL> DECLARE

2 v_t p.p_type;

3 BEGIN

4 v_t(1) := 'this is a test of p';

5 v_t(2) := 'A second test line for p';

6 p.pp(v_t);

7 END;

8 /

this is a test of p

A second test line for p

PL/SQL procedure successfully completed

SQL>

这交易创建了一个独立的Oracle TYPE(不能是一个关联数组),需要定义一个所有人都可以看到的包,以便所有人都可以使用它所定义的TYPE .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值