• JAVA 中CLOB与Clob有区别


    在JAVA中CLOB与Clob是有区别的类型。

    (oracle.jdbc.internal.OracleCallableStatement)OracleCallableStatement能接收CLOB的数据类型,

    (java.sql.CallableStatement)CallableStatement能接收Clob的数据类型。

    CODE示例

    PACKAGE

    CREATE OR REPLACE PACKAGE BODY cux_test_clob_pkg IS
    PROCEDURE test_lower_clob(p_parameter_id IN NUMBER,
                                        x_out_xml              OUT Clob) IS
            l_temp_str VARCHAR2(32767);
          
            l_temp_clob CLOB;
        BEGIN
          
            dbms_lob.createtemporary(x_out_xml,
                                     TRUE);
            l_temp_str := '<?xml version="1.0" encoding="GBK"?>' || fnd_global.newline;
      
            dbms_lob.writeappend(lob_loc => x_out_xml,
                                 amount  => length(l_temp_str),
                                 buffer  => l_temp_str);
          
        END;
     
    PROCEDURE test_upper_clob(p_parameter_id IN NUMBER,
                                        x_out_xml              OUT CLOB) IS
            l_temp_str VARCHAR2(32767);
          
            l_temp_clob CLOB;
        BEGIN
          
            dbms_lob.createtemporary(x_out_xml,
                                     TRUE);
            l_temp_str := '<?xml version="1.0" encoding="GBK"?>' || fnd_global.newline;
      
            dbms_lob.writeappend(lob_loc => x_out_xml,
                                 amount  => length(l_temp_str),
                                 buffer  => l_temp_str);
          
        END;
     
     
    END;

    //获取CLOB

        private Clob getSuppRegXMLClob(OAPageContext pageContext, OAWebBean webBean,String parameterId){
            Clob clob = null;
            OADBTransaction localOADBTransactionImpl = 
                (OADBTransaction)pageContext.getApplicationModule(webBean).getOADBTransaction();
            OracleCallableStatement localCallableStatement = null;
            LogUtil.of("getSuppRegXMLClob mappingId= "+mappingId+" suppCateMappingId="+suppItemCateMappingId,pageContext).print(pageContext);
            try {
    
                String str = 
                    "begin
    " + 
                    "  cux_test_clob_pkg.test_upper_clob(p_parameter_id => :1,
    " + 
                    "                                                     x_out_xml => :2);
    " + 
                    "end;";
                localCallableStatement = (oracle.jdbc.internal.OracleCallableStatement)localOADBTransactionImpl.createCallableStatement(str, 1);
                localCallableStatement.setObject(1, mappingId);
                localCallableStatement.registerOutParameter(2, OracleTypes.CLOB); 
                localCallableStatement.execute();
                clob = localCallableStatement.getCLOB(2);
           localCallableStatement.close(); 
            } catch (SQLException localException2) {
                clob = null;throw new OAException("getSuppRegXMLClob  cux_test_clob_pkg.test_lower_cloberror!"+localException2.getMessage());            
            } finally {
                try {
                    if (localCallableStatement != null)
                        localCallableStatement.close();
                } catch (Exception localException4) {
                    throw new OAException("getSuppRegXMLClob  error!");
                }
    
            }
            
            return clob;
        }

    //获取Clob

    private CLOB getSuppRegXMLClob(OAPageContext pageContext, OAWebBean webBean,String parameterId){
            CLOB clob = null;
            OADBTransaction localOADBTransactionImpl = 
                (OADBTransaction)pageContext.getApplicationModule(webBean).getOADBTransaction();
            CallableStatement localCallableStatement = null;
            LogUtil.of("getSuppRegXMLClob mappingId= "+mappingId+" suppCateMappingId="+suppItemCateMappingId,pageContext).print(pageContext);
            try {
    
                String str = 
                    "begin
    " + 
                    "  cux_test_clob_pkg.test_upper_clob(p_parameter_id => :1,
    " + 
                    "                                                     x_out_xml => :2);
    " + 
                    "end;";
                localCallableStatement = localOADBTransactionImpl.createCallableStatement(str, 1);
                localCallableStatement.setObject(1, mappingId);
                localCallableStatement.registerOutParameter(2, OracleTypes.CLOB); 
                localCallableStatement.execute();
                clob = localCallableStatement.getClob(2);
           localCallableStatement.close(); }
    catch (SQLException localException2) { clob = null; throw new OAException("getSuppRegXMLClob cux_test_clob_pkg.test_upper_clob!"+localException2.getMessage()); } finally { try { if (localCallableStatement != null) localCallableStatement.close(); } catch (Exception localException4) { throw new OAException("getSuppRegXMLClob error!"); } } return clob; }
  • 相关阅读:
    在OC和Swift中使用IBDesignable/IBInspectable
    Swift之贪婪的UIButton
    iOS:如何通过UIEdgeInsetsMake来制作可伸缩的Button
    iOS8中如何将状态栏的字体颜色改为白色
    iOS7 StatusBar 使用小结
    IOS 怎么修改Navigation Bar上的返回按钮文本颜色,箭头颜色以及导航栏按钮的颜色
    android采用videoView播放视频(包装)
    面向对象设计——通用愉快的经历
    OCP-1Z0-051-名称解析-文章12称号
    图片切割工具---产生多个div切割图片 采用for和一的二维阵列设置背景位置
  • 原文地址:https://www.cnblogs.com/huanghongbo/p/4884918.html
Copyright © 2020-2023  润新知