C# 在c中将clob从oracle转换为字符串#

C# 在c中将clob从oracle转换为字符串#,c#,asp.net,oracle,C#,Asp.net,Oracle,我是oracle技术顾问,asp.net的新手 如何将Oracle过程中的clob输出转换为.net应用程序表单中的字符串 下面是代码,它可以很好地将Oracle Varchar2转换为字符串c 这就足够了吗?如果CLOB数据存储为字节数组,请记住您使用的是哪种编码,并将其改为GetString()。我过去在Oracle中遇到过一些问题,它不使用名称来映射参数,而是显式地将参数添加到集合中的顺序-这里可能不适用,但值得检查顺序?您定义它们的顺序与添加它们的顺序不同。 using System;

我是oracle技术顾问,asp.net的新手

如何将Oracle过程中的clob输出转换为.net应用程序表单中的字符串

下面是代码,它可以很好地将Oracle Varchar2转换为字符串c


这就足够了吗?如果CLOB数据存储为字节数组,请记住您使用的是哪种编码,并将其改为
GetString()
。我过去在Oracle中遇到过一些问题,它不使用名称来映射参数,而是显式地将参数添加到集合中的顺序-这里可能不适用,但值得检查顺序?您定义它们的顺序与添加它们的顺序不同。
using System;
using System.Windows.Forms;
using System.Xml;
using System.Net;
using System.IO;
using Oracle.ManagedDataAccess.Client;
using System.Net.Mail;
using System.Configuration;

public void SoapRequest_api(string mode1)
{

    OracleConnection con = new OracleConnection(ConfigurationManager.ConnectionStrings["Mobile"].ConnectionString);
    OracleCommand cmd = new OracleCommand();
    cmd.CommandType = System.Data.CommandType.StoredProcedure;
    cmd.CommandText = "APPS.P_SOAP_WEBSERVICE.xxstatistics_p";

    OracleParameter soap_request = new OracleParameter(":P_xml", OracleDbType.Clob);
    soap_request.Direction = System.Data.ParameterDirection.Output;

    OracleParameter msg = new OracleParameter(":p_msg", OracleDbType.Varchar2, 200);
    msg.Direction = System.Data.ParameterDirection.Output;

    OracleParameter refno = new OracleParameter(":p_SitRefNo", OracleDbType.Varchar2, 200);
    refno.Direction = System.Data.ParameterDirection.Output;

    OracleParameter mode = new OracleParameter(":p_SitTransCode", OracleDbType.Varchar2, 200);


    mode.Value = mode1;
    cmd.Parameters.Add(mode);
    cmd.Parameters.Add(soap_request);
    cmd.Parameters.Add(msg);
    cmd.Parameters.Add(refno);



    cmd.Connection = con;
    con.Open();
    try
    {
        int res = cmd.ExecuteNonQuery();
        string status = msg.Value.ToString();
        string refno_output = refno.Value.ToString();
        con.Close();
        if (status == "S")
        {
            string output = System.Convert.ToString(soap_request.Value);
            this.textBox2.Text = refno_output;
            SOAP_Request(Convert.ToString(soap_request.Value));
        }
        else
        {
            //curuser = null;
            //return false;
        }
        MessageBox.Show(refno.Value.ToString()+"->"+ System.Convert.ToString(soap_request.Value));
    }
    catch (OracleException ex)
    {
        string temp = ex.Message;
        con.Close();
    }
}