C# 将2个字段数组从c传递到oracle过程#
我一直在尝试将2个字段的数据类型从c#传递到oracle过程。我可以这样做,为1个领域如下 甲骨文:C# 将2个字段数组从c传递到oracle过程#,c#,oracle,stored-procedures,plsql,C#,Oracle,Stored Procedures,Plsql,我一直在尝试将2个字段的数据类型从c#传递到oracle过程。我可以这样做,为1个领域如下 甲骨文: TYPE my_array IS TABLE OF VARCHAR2(40) INDEX BY BINARY_INTEGER; PROCEDURE insert_question(test IN my_array) IS BEGIN --something END; C#: 在此之前一切正常。现在,我需要将2个字段列表传递给oracle存储过程,如 数 正文 我创建了一个新类
TYPE my_array IS TABLE OF VARCHAR2(40) INDEX BY BINARY_INTEGER;
PROCEDURE insert_question(test IN my_array) IS
BEGIN
--something
END;
C#:
在此之前一切正常。现在,我需要将2个字段列表传递给oracle存储过程,如
- 数
- 正文
TYPE fields IS RECORD
(
num NUMBER,
text VARCHAR2(1000)
);
TYPE for_questions IS TABLE OF fields INDEX BY BINARY_INTEGER;
我在c#有一个列表,有2个字段。我尝试过将数据作为参数传递给oracle过程的代码
command.Parameters.Add(new OracleParameter("fixed", OracleDbType.Varchar2)
{
CollectionType = OracleCollectionType.PLSQLAssociativeArray,
UdtTypeName = "for_questions",
Value = fixed_q.ToArray(),
Size = fixed_q.Count,
Direction = ParameterDirection.Input
});
但它并没有像预期的那样起作用。所以我需要一些帮助如何将2字段列表/数组作为参数传递给oracle存储过程?
提前谢谢
注意:建议的问题对我没有帮助,因为它在java上。我的问题是:在c#中,我不能将多个字段类型作为参数传递。可能重复@XING,因为它是java,恐怕对我没有帮助。这里有一个“struct”db类型。我的程序结构与公认的答案类似。我的问题是;我无法将c#中的类型作为oracle参数传递。我遇到过这样的问题,我已经使用以下方法解决了这个问题:thislink@MuradGaribzada是的,我确实看到了,但它对我没有帮助,因为我没有OracleDbType.Array类型。非常感谢。
command.Parameters.Add(new OracleParameter("fixed", OracleDbType.Varchar2)
{
CollectionType = OracleCollectionType.PLSQLAssociativeArray,
UdtTypeName = "for_questions",
Value = fixed_q.ToArray(),
Size = fixed_q.Count,
Direction = ParameterDirection.Input
});