2014-10-01 79 views
0

我想從我的.NET代碼傳遞一個數字表到我的過程。參數的類型如下:在.NET和PLSQL之間傳遞參數

TYPE ARRAY_OF_NUMBER AS NUMBER;

我打電話用下面的代碼的程序:

  OracleParameter x = new OracleParameter(); 
      x.OracleDbType = OracleDbType.Decimal; 
      x.Direction = ParameterDirection.Input; 
      x.CollectionType = OracleCollectionType.PLSQLAssociativeArray; 
      x.Value = new int[3] { 1, 2, 3 }; 
      objCmd.Parameters.Add(x); 

,但我得到了下面的錯誤,由於x.Value的格式:

PLS-00306:numéroou types d'argumentserronés

您是否對.NET類型有任何想法,可以使用「TABLE NUMBER」?

回答

0

你必須使用關聯數組,例如:

TYPE ARRAY_OF_NUMBER AS TABLE OF NUMBER INDEX BY INTEGER; 
0

您可能錯了,TYPE不是ASSOCIATIVE ARRAY。這是一個NESTED TABLE

+0

你確定這不是一個關聯數組? http://www.oracle-base.com/articles/9i/associative-arrays-9i.php – 2014-10-01 16:03:34

+0

@TD檸檬,你確定你明白'NESTED TABLE'和'ASSOCIATED ARRAY'嗎?你在類型聲明中看到'INDEX BY'嗎? – 2014-10-01 16:22:36