当前位置:编程学习 > C#/ASP.NET >>

存储过程传入参数的问题

--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()

--抱类型出错希望各位大虾指教。
--------------------编程问答-------------------- 没用过oracle,帮顶下 --------------------编程问答-------------------- 搜罗了一下,希望对楼主有用:
http://www.sudu.cn/info/html/edu/20071227/50894.html
补充:.NET技术 ,  VB.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,