Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将2个字段数组从c传递到oracle过程#_C#_Oracle_Stored Procedures_Plsql - Fatal编程技术网

C# 将2个字段数组从c传递到oracle过程#

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存储过程,如 数 正文 我创建了一个新类

我一直在尝试将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存储过程,如

  • 正文
我创建了一个新类型,命名为_questions

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
        });