存储过程传入参数的问题

fullor2000 2010-06-29 08:28:53
--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()

--抱类型出错希望各位大虾指教。
...全文
129 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
myhope88 2010-06-29
  • 打赏
  • 举报
回复
没用过oracle,帮顶下
sunxinyu 2010-06-29
  • 打赏
  • 举报
回复
搜罗了一下,希望对楼主有用:
http://www.sudu.cn/info/html/edu/20071227/50894.html

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧