Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.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
Parameters VARCHAR2 Oracle odp.net表的输出参数_Parameters_Odp.net - Fatal编程技术网

Parameters VARCHAR2 Oracle odp.net表的输出参数

Parameters VARCHAR2 Oracle odp.net表的输出参数,parameters,odp.net,Parameters,Odp.net,我有这种类型: TYPE tipo_TableVarchar2 IS TABLE OF VARCHAR2(1000) INDEX BY BINARY_INTEGER; 并且过程获取数组(p\u arrout TableVarchar2)是 OracleParameter param = new OracleParameter(); param.OracleDbType = OracleDbType.Varchar2; param.CollectionType = OracleCollectio

我有这种类型:

TYPE tipo_TableVarchar2 IS TABLE OF VARCHAR2(1000) INDEX BY BINARY_INTEGER;
并且过程
获取数组(p\u arrout TableVarchar2)

OracleParameter param = new OracleParameter();
param.OracleDbType = OracleDbType.Varchar2;
param.CollectionType = OracleCollectionType.PLSQLAssociativeArray;
param.ParameterDirection = ParameterDirection.Output;

cm.Parameters.Add(param);

如何使用OracleParameter的输出来获取值?

查看Oracle 11g odp.net驱动程序,它允许您传递Oracle类型。 Oracle网站上以及您的11g主页的安装目录中都有一些示例。。。 C:\Oracle\Ora11g\u Home\odp.net\samples\2.x\UDT

在这个示例中,我不得不撤回一个对象类型

你会有这样的东西

        OracleParameter p_params = new OracleParameter();
        p_params.ParameterName = "params";
        p_params.OracleDbType = OracleDbType.Object;
        p_params.Direction = ParameterDirection.InputOutput;
        // Note: The UdtTypeName is case-senstive
        p_params.UdtTypeName = "SCHEMA_NAME.TYPE_NAME";
您还需要一个定义类型的类。 搜索“OracleObjectMappingAttribute”和“IOracleCustomTypeFactory”


旁注-我正在使用11g odp.net驱动程序访问10g数据库。您只需要在项目中引用以下.dll:oci.dll、oraociicus11.dll和OraOps11w.dll。您应该已经在引用Oracle.DataAccess.dll(请确保您开始使用11g版本)。

查看Oracle 11g odp.net驱动程序,它允许您传递Oracle类型。 Oracle网站上以及您的11g主页的安装目录中都有一些示例。。。 C:\Oracle\Ora11g\u Home\odp.net\samples\2.x\UDT

在这个示例中,我不得不撤回一个对象类型

你会有这样的东西

        OracleParameter p_params = new OracleParameter();
        p_params.ParameterName = "params";
        p_params.OracleDbType = OracleDbType.Object;
        p_params.Direction = ParameterDirection.InputOutput;
        // Note: The UdtTypeName is case-senstive
        p_params.UdtTypeName = "SCHEMA_NAME.TYPE_NAME";
您还需要一个定义类型的类。 搜索“OracleObjectMappingAttribute”和“IOracleCustomTypeFactory”


旁注-我正在使用11g odp.net驱动程序访问10g数据库。您只需要在项目中引用以下.dll:oci.dll、oraociicus11.dll和OraOps11w.dll。您应该已经在引用Oracle.DataAccess.dll(请确保您开始使用11g版本)。

这是一个有点老的问题,但实际上,在这里,精确执行此操作的所有复杂性这是一个有点老的问题,但实际上,在这里,精确执行此操作的所有复杂性都是