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\n" + 
                "  cux_test_clob_pkg.test_upper_clob(p_parameter_id => :1,\n" + 
                "                                                     x_out_xml => :2);\n" + 
                "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\n" + 
                "  cux_test_clob_pkg.test_upper_clob(p_parameter_id => :1,\n" + 
                "                                                     x_out_xml => :2);\n" + 
                "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; }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值