oracle 向存储过程传入数组类型参数

3 篇文章 0 订阅

最近想试试给存储过程传数组参数,破费周折,在这里与大家分享下:


我用的plsql, 打开plsql,在type目录下面,可以创建自定义的数据类型, 于是用  create or replace type tab_str as table  of varchar2(30);  创建了一个数组类型。


接着用存储过程 procedure testfortable(pra in tab_str , pra_out out varchar2);  去调用,在C#里用

                cmd.CommandType = CommandType.StoredProcedure;
                cmd.CommandText = "dlias.pra_table.testtemp";
              
                OracleParameter Param1 = new
OracleParameter(@"pra", OracleDbType.Varchar2, 3);
             
                Param1.Direction = ParameterDirection.Input;
                Param1.CollectionType = OracleCollectionType.PLSQLAssociativeArray;

                Param1.Value = new string[3]{"1", 
                                            "2", 
                                            "3"};

            
去调用存储过程,但是一直提示我 参数个数或类型错误。找了很久的错误,我在包里用  TYPE list_type IS TABLE OF VARCHAR2(20) INDEX BY BINARY_INTEGER;  创建了一个数组类型,测试通过了,千万记得 ,不能把INDEX BY BINARY_INTEGER去掉,否则会报错,我也不知道为什么,如果有高人知道, 求指点
 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值