C# XMLType out参数和ODP.NET
我尝试在表和ODP.NET中使用XMLType列 是否有使用ODP.NET和XMLTYPE out参数的完整示例源代码 我的程序:C# XMLType out参数和ODP.NET,c#,odp.net,xmltype,out-parameters,C#,Odp.net,Xmltype,Out Parameters,我尝试在表和ODP.NET中使用XMLType列 是否有使用ODP.NET和XMLTYPE out参数的完整示例源代码 我的程序: PROCEDURE GET_DATA_DEPLOY(pPROYECT IN VARCHAR2, pETIQ IN VARCHAR2 DEFAULT NULL, pMOMENT OUT TIMESTAMP, pDATA OUT XMLTYPE) 测试:功能和程
PROCEDURE GET_DATA_DEPLOY(pPROYECT IN VARCHAR2,
pETIQ IN VARCHAR2 DEFAULT NULL,
pMOMENT OUT TIMESTAMP,
pDATA OUT XMLTYPE)
测试:功能和程序
FUNCTION FRKDATA_GET_XMLTYPE(num IN NUMBER, xml1 IN XMLTYPE) RETURN XMLTYPE IS
xmlout XMLTYPE;
BEGIN
SELECT XMLTYPE_COL
INTO xmlout
FROM POC_TEST_XML_TABLE
WHERE NUM_COL = num;
RETURN xmlout;
END FRKDATA_GET_XMLTYPE;
PROCEDURE FRKDATA_TESTXML(qry in VARCHAR2, rslt OUT XMLTYPE) AS
BEGIN
rslt := dbms_xmlgen.getxmltype(qry);
END FRKDATA_TESTXML;
查看
我得到的连接是关闭错误
只是,我找到了这个示例,但没有输出参数
/*
create or replace function xmlproc(v1 in xmltype) return xmltype is
begin
return v1;
end;
/
*/
using System;
using System.Data;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;
class Program
{
static void Main(string[] args)
{
using (OracleConnection con = new OracleConnection())
{
con.ConnectionString = "user id=scott;password=tiger;data source=orcl";
con.Open();
using (OracleCommand cmd = new OracleCommand("",con))
{
cmd.CommandText = "xmlproc";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new OracleParameter("return", OracleDbType.XmlType)).Direction = ParameterDirection.ReturnValue;
cmd.Parameters.Add(new OracleParameter("v1", OracleDbType.XmlType)).Direction = ParameterDirection.Input;
cmd.Parameters["v1"].Value = "<a>b</a>";
cmd.ExecuteNonQuery();
Console.WriteLine(((OracleXmlType)cmd.Parameters["return"].Value).Value);
}
}
}
}
是否有使用企业库的版本源代码
参考资料:
PROCEDURE "XMLPROC" ( "PARAM1" OUT XMLTYPE) IS
BEGIN
PARAM1 := dbms_xmlgen.getxmltype('SELECT FIRST_NAME FROM EMPLOYEES WHERE EMPLOYEE_ID=100');
END;
OracleConnection con = new OracleConnection();
con.ConnectionString = conString;
con.Open();
OracleCommand cmd = con.CreateCommand();
cmd.CommandText = "xmlproc";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new OracleParameter("xmlout", OracleDbType.XmlType)).Direction = ParameterDirection.Output;
cmd.ExecuteNonQuery();
Console.WriteLine(((OracleXmlType)cmd.Parameters["xmlout"].Value).Value);