簡體   English   中英

從C#.net使用由binary_integer數據類型作為參數的varchar2(100)索引表調用Oracle包函數

[英]Calling oracle package function with table of varchar2(100) index by binary_integer datatype as a parameter from c# .net

我正在從c#.net調用oracle包函數,但面臨以下問題

Error : ORA-06550: line 1, column 15:
PLS-00306: wrong number or types of arguments in call to 'MYFUNCTION'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored

我的職能是:

function Myfunction(lines in t_line, brokerSeq in number, 
                    broker_code_in_file in varchar2, 
                    pb_pv_ind in varchar2)

第一個參數在同一包中聲明,例如

type t_line is table of varchar2(100) index by binary_integer;

請協助。

我有一個示例,它在VB.NET中,但是我想您可以將其轉換為C#:

Public Function GetObjects(ByVal lines As String()) As DataTable
   Dim cmd As OracleCommand
   Dim par As OracleParameter
   Dim da As OracleDataAdapter, dt As New DataTable

   cmd = New OracleCommand("BEGIN :res := Myfunction(:lines); END;", server.con)
   cmd.CommandType = CommandType.Text

   ' Return value
   cmd.Parameters.Add("res", OracleDbType.RefCursor, ParameterDirection.ReturnValue)

   par = cmd.Parameters.Add("lines", OracleDbType.Varchar2, ParameterDirection.Input)
   par.CollectionType = OracleCollectionType.PLSQLAssociativeArray
   par.Value = lines
   par.Size = lines.Length
   cmd.ExecuteNonQuery()

   da = New OracleDataAdapter(cmd)
   da.Fill(dt)
   Return dt

End Function

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM