存储过程传入参数的问题
--PACKAGE
TYPE PFFileBodyBType IS TABLE OF VARCHAR2(129) index by BINARY_INTEGER; --类型1
TYPE user_type_Arr IS TABLE OF PFFileBodyBType; --类型2
PROCEDURE TESTARRLIST_Arr(
BBB IN user_type_Arr);
--PACKAGE BODY
PROCEDURE TESTARRLIST_Arr(
BBB IN user_type_Arr)
IS
i integer;
User_Type PFFileBodyBType;
BEGIN
FOR i IN 1..3 LOOP
User_Type:= BBB(i);
insert into T1 values(i,User_Type(0));
END LOOP;
END TESTARRLIST_Arr;
--存储过程没有问题,VB里面的代码怎么写?
--VB代码 1层的数组已经可以了,2层的数组怎么传?
Dim _connect As OracleConnection = New OracleConnection(dbCon._strConnectString)
Dim cmd As OracleCommand = New OracleCommand("begin MyPack.TESTARRLIST_Arr(:1);end;", _connect)
Dim param1 As OracleParameter = cmd.Parameters.Add("param1", OracleDbType.Varchar2)
param1.Direction = ParameterDirection.Input
param1.CollectionType = OracleCollectionType.PLSQLAssociativeArray
---这里的参数应该怎么写?------------------
Dim str1(2) As String
str1(0) = "objter1234567aaWWWWWWWWWWWWWWWWW"
str1(1) = "objter22345672aaWWWWWWWWWWWWW"
str1(2) = "objter3456887aaWWWWWWWWWWW"
Dim str2(2) As Array
str2(0) = str1
str2(1) = str1
str2(2) = str1
----------------------------------------------
param1.Value = str2
param1.Size = 3
Dim integer1(2) As Integer
integer1(0) = 13
integer1(1) = 14
integer1(2) = 13
Dim Os(2) As OracleParameterStatus
Os(0) = OracleParameterStatus.Success
Os(1) = OracleParameterStatus.Success
Os(2) = OracleParameterStatus.Success
param1.ArrayBindSize = integer1
param1.ArrayBindStatus = Os
_connect.Open()
cmd.ExecuteNonQuery()
--抱类型出错希望各位大虾指教。