关于ORACLE里由string转成CLOB存入数据库里的问题

public static XmlDocumentEntity CreateXmlDocumentEntity(int DptID, int FlowType, string XmlContent)       

 {            

 #region 要做ORACLE的   

         if (SysConfig.DataBaseType == "Oracle")     

       {                 byte[] tempBuff = System.Text.Encoding.Unicode.GetBytes(XmlContent);            

    OracleParameter TmpContent = new OracleParameter("tempblob", OracleType.Clob);              

  TmpContent.Direction = ParameterDirection.Output;      

          string tmpSql = "DECLARE A clob;BEGIN  DBMS_LOB.CREATETEMPORARY(A, FALSE); " + ":tempblob := A; " + "END;";                // string tmpSql = "declare xx clob; begin dbms_lob.createtemporary(xx, false, 0); :tempblob := xx; end;";   

             IDataParameter[] parameters11 ={                         TmpContent,                    };              

  OracleConnection conn = new OracleConnection(SystemConfig.ConnectionString);        

        OracleCommand comm = new OracleCommand(tmpSql, conn);                conn.Open();              

  OracleTransaction tx;          

      tx = conn.BeginTransaction();         

       comm.Transaction = tx;           

     comm.Parameters.Add(TmpContent);       

         comm.ExecuteNonQuery();         

       OracleLob tempLob = (OracleLob)TmpContent.Value;  

              tempLob.BeginBatch(OracleLobOpenMode.ReadWrite);                tempLob.Write(tempBuff, 0, tempBuff.Length);          

      tempLob.EndBatch();         

       tx.Rollback();          

      conn.Close();            

    OracleParameter Content = new OracleParameter("XmlContent", OracleType.Clob);             

   Content.Value = tempLob;       

         IDataParameter[] parameters = new IDataParameter[]                        {                            Factory.CreateParameter("@DptID",DptID),                            Factory.CreateParameter("@FlowType",FlowType),                           Content                        };             

   IDbHelper DBHelper = Factory.CreateDBAccess();    

            DBHelper.ExecuteNonQuery(SystemConfig.ConnectionString, CommandType.StoredProcedure, "PFlow_SetXmlContent", parameters);                XmlDocumentEntity Entity = new XmlDocumentEntity(DptID, FlowType, XmlContent);                return Entity;            }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Python中,string转换为CLOB存储到DB2数据库的过程可以通过以下步骤完成: 1. 首先,确保您已经连接到DB2数据库。您可以使用IBM官方提供的pyodbc库或ibm_db库来实现与DB2数据库的连接。 2. 创建一个数据库表,其中包含一个CLOB列来存储文本数据。 3. 在Python中,使用适当的库和函数打开数据库连接,并执行SQL INSERT语句来插入CLOB数据。在INSERT语句中,使用参数化查询(prepared statement)方式将CLOB数据插入到数据库表中。这样可以防止SQL注入攻击,并提高执行效率。 下面是一个示例代码,展示了如何将字符串转换为CLOB并插入到DB2数据库中: ```python import ibm_db # 设置数据库连接参数 conn_str = "DATABASE=<db_name>;HOSTNAME=<db_hostname>;PORT=<db_port>;PROTOCOL=TCPIP;UID=<db_user>;PWD=<db_password>" # 创建数据库连接 conn = ibm_db.connect(conn_str, "", "") # 打开创建的连接 if conn: print("连接到DB2数据库成功") # 创建一个字符串数据 string_data = "这是一个测试CLOB数据" # 将字符串数据转换为CLOB clob_data = ibm_db.CLOB(conn, string_data) # 准备SQL语句 insert_sql = "INSERT INTO your_table(clob_column) VALUES(?)" # 创建一个SQL声明 stmt = ibm_db.prepare(conn, insert_sql) # 绑定CLOB参数 ibm_db.bind_param(stmt, 1, clob_data) # 执行插入操作 if ibm_db.execute(stmt): print("插入CLOB成功") else: print("插入CLOB失败") # 提交事务 ibm_db.commit(conn) # 关闭连接 ibm_db.close(conn) ``` 请注意,上述代码中的`<db_name>`、`<db_hostname>`、`<db_port>`、`<db_user>`和`<db_password>`应替换为您的DB2数据库的实际连接参数。同样,`your_table`应替换为实际的表名,`clob_column`应替换为实际的CLOB列名。 上述代码中使用的是`ibm_db`库,这是IBM官方提供的Python库,用于与DB2数据库进行交互。您需要确保已经安装并正确配置了此库。您还可以使用其他Python库和工具来实现与DB2数据库的连接和操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值