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;
}
JAVA 中CLOB与Clob有区别的更多相关文章
- Java中Set Map List 的区别
java中set map list的区别: 都是集合接口 简要说明 set --其中的值不允许重复,无序的数据结构 list --其中的值允许重复,因为其为有序的数据结构 map--成对的数据结构 ...
- Java中Comparable和Comparator接口区别分析
Java中Comparable和Comparator接口区别分析 来源:码农网 | 时间:2015-03-16 10:25:20 | 阅读数:8902 [导读] 本文要来详细分析一下Java中Comp ...
- 转:Java中abstract和interface的区别
转自:Java中abstract和interface的区别 abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java ...
- Java中this与super的区别【6】
若有不正之处,请多多谅解并欢迎批评指正,不甚感激.请尊重作者劳动成果: 本文原创作者:pipi-changing本文原创出处:http://www.cnblogs.com/pipi-changing/ ...
- Java中堆和栈的区别(转)
栈与堆都是Java用来在Ram中存放数据的地方.与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆. Java的堆是一个运行时数据区,类的对象从中分配空间.这些对象通过new. ...
- 转:二十一、详细解析Java中抽象类和接口的区别
转:二十一.详细解析Java中抽象类和接口的区别 http://blog.csdn.net/liujun13579/article/details/7737670 在Java语言中, abstract ...
- Java中Long与long的区别(转)
Java中Long与long的区别(转) [本文转载自:http://www.cnblogs.com/bluestorm/archive/2012/04/22/2464739.html] 转载请联系原 ...
- java中堆和堆栈的区别
java中堆和堆栈的区别(一) 1.栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方.与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆. 2. 栈的优势是,存取 ...
- Java中ArrayList与LinkedList的区别
Java中ArrayList与LinkedList的区别 一般大家都知道ArrayList和LinkedList的区别: 1. ArrayList的实现是基于数组,LinkedList的实现是基于双向 ...
- java 标准输出与标准错误 out与 err 区别 用法 联系 java中的out与err区别 System.out和System.err的区别 System.out.println和System.err.println的区别 Java重定向System.out和System.err
本文关键词: java 标准输出与标准错误 out与 err 区别 用法 联系 java中的out与err区别 System.out和System.err的区别 System.out.pri ...
随机推荐
- MySQL笔记(六)游标练习
23.3.1 Trigger Syntax and Examples 意义不明的几道练习,留着备用. 感觉不好写,而且难以调试..不知道以后会不会有实际的应用场景. 环境:MySQL 笔记(三)由 t ...
- Mysql的序列
Mysql的序列 Mysql自带的序列:字段设置为int,属性里面选上“自动增长”即可: 在插入数据的时候可以不插入该字段的值,mysql会自动处理:
- Js中String转int
Js中String转int 方案一代码: Number(str) 方案二代码: //parseInt 方法都有两个参数, 第一个参数就是要转换的对象, 第二个参数是进制基数, 可以是 2, 8, 10 ...
- 【翻译】std::list::remove - C++ Reference
公有成员函数 std::list::remove void remove(const value_type& val); 删除与给定值相等的元素 从容器中删除所有与 val 值相等的元素.li ...
- EditText输入属性
1. android:inputType="none" android:inputType="text" android:inputType="tex ...
- grep如何结尾匹配
答:grep "jello$" 如:git branch输出以下内容: yes-jello-good yes-jellos yes-jello 那么使用以下命令只能过滤出一行: $ ...
- VS2017无法启动程序 操作在当前状态中是非法的
工具--选项--调试--常规--启用asp.net的JavaScript调试(chrome和ie)去掉勾选
- ACM-ICPC 2018 徐州赛区网络预赛H Ryuji doesn't want to study(树状数组)题解
题意:给你数组a,有两个操作 1 l r,计算l到r的答案:a[l]×L+a[l+1]×(L−1)+⋯+a[r−1]×2+a[r] (L is the length of [ l, r ] that ...
- Linux rhel7 下MySQL5.7.18详细安装文档
Linux rhel7 下MySQL5.7.18详细安装文档 本文安装MySQL5.7使用的是vm虚拟机rhel7操作系统 ,ftp文件传输是FileZilla3.27,远程连接xssh5.0 1 登 ...
- 风景区的面积及道路状况分析问题 test
参考文献: https://wenku.baidu.com/view/b6aed86baf1ffc4ffe47ac92.html #include <bits/stdc++.h> us ...