前两天遇害到一个问题就是需要处理一字符型变量(该变量要作为参数传入存储过程执行),但其长度超长(长度小于32767时正常,大于时就报错)。后来想了很多的解决方案,最后决定先将其转换成CLOB,然后再将其以CLOB的方式传进去。
是如何转换的呢?经过狂搜GOOGLE,BAIDU,并且不停地测试后,终于成功了。我现将其转换代码贴出来,为大家共享,以便后来人和我一样,为其苦闷不已(就为这,我可是花了一整天的时间)
oracle.sql.CLOB clob = oracle.sql.CLOB.createTemporary(
conn, false,
oracle.sql.CLOB.DURATION_SESSION);
clob.open(oracle.sql.CLOB.MODE_READWRITE);
writer = clob.getCharacterOutputStream();
writer.write(parmSql.toCharArray());
writer.flush();
writer.close();
不要以为这样就行了,其实不然。这个我早就知道,难就难在驱动的问题(不要小看这,这可是个难点,如果你不知道的话,呵呵)。将驱动更换成最新OJDBC14。JAR。这个需要在ORALCE网上去下。
算了还是上传一份吧,现在的懒人也多。
分享到:
- 2008-09-04 15:32
- 浏览 11817
- 评论(1)
- 论坛回复 / 浏览 (0 / 4645)
- 查看更多
相关推荐
ORACLE中CLOB字段转String类型
SQL> select instr('oracle traning','ra',1,2) instring from dual; INSTRING --------- 9 6.LENGTH 返回字符串的长度; SQL> select name,length(name),addr,length(addr),sal,length(to_char(sal)) from ....
- Bug # 4918539: ORA-ORA-06502 or ORA-01460 may occurs if a procedure is executed through the Run PL/SQL dialog box and a string with multibyte characters is assigned to one of the parameters. ...
SQL> select instr('oracle traning','ra',1,2) instring from dual; INSTRING --------- 9 6.LENGTH 返回字符串的长度; SQL> select name,length(name),addr,length(addr),sal,length(to_char(sal)) from gao.nchar...
3.支持任意字符串作为每行分隔符,例如\r,\r\n,或者十六进制字符或任意指定的字符串(例如可实现把整个日志文件装入数据库的单个clob字段). 4.支持任意大小的文本,装入几十GB都试过没问题。 5.明确到每一行的错误信息....
准备系统环境xp+.net2.0+oracle9i表结构(由于是测试,表结构随便建了一张)XX字段名类型IDVARCHAR2(70)TESTCLOB测试方式1:直接将CLOB的值拼写在SQL语句中。代码:stringid=Guid.NewGuid().ToString();OracleComman
Null and empty string values ..................................................................... 44 XML shortcut with the p-namespace .......................................................... 44 ...
Oracle P/L SQL实现发送Email、浏览网页等网络操作功能 Oracle P/L SQL实现发送Email、浏览网页等网络操作功能,以下是此过程包的头部,包体经常打包处理plb,感兴趣用户可以下载下来。 --.使用聚合函数实现 多行...
Null and empty string values ..................................................................... 44 XML shortcut with the p-namespace .......................................................... 44 ...
•DefaultLobHandler:适用于大部分的数据库,如SqlServer,MySQL,对Oracle 10g也适用,但不适用于Oracle 9i(看来Oracle 9i确实是个怪胎,谁叫Oracle 公司自己都说Oracle 9i是一个过渡性的产品呢)。 •...
插入: 直接写在SQL里面是不行的,一来SQL脚本有字符数限制,而来文章内容包含许多特殊字符,如换行,引号, 之类的东西,很麻烦。网上流行通用做法是先插入一个空CLOB字段,用empty_clob()方法来创建空字段,如: ...
说明: 使用字节或码点语义来指定新列的创建, 如 char, varchar2, clob, nchar, nvarchar2, nclob 列。各种字符集对字符都有各自的定义。在客户机和服务器上使用同一字符集时, 应以该字符集所定义的字符来衡量字符串...
sql> create user juncky identified by oracle default tablespace users sql> temporary tablespace temp quota 10m on data password expire sql> [account lock|unlock] [profile profilename|default]; ...
kettle通过java代码将数据库blob 字段抽取到本地文件
Bug with empty string parameters is fixed for ASE data provider Bug with DateTime parameter is fixed for ASE data provider Bug with "SQL statement doesn't return rows" is fixed for ASE data provider...
1、在PL/SQL中写json串,无需声明json对象,只需直接拼接成格式正确的json字符串即可,因此数据库对象间json串的传递完全可以用varchar2或clob来代替。 2、结构复杂的json串节点元素值基本上可
031708_【第17章:Java数据库编程】_处理大数据对象(1)—处理CLOB数据笔记.pdf 031709_【第17章:Java数据库编程】_处理大数据对象(2)—处理BLOB数据笔记.pdf 031710_【第17章:Java数据库编程】_...
xml Mysql Oracle SqlServer int int NUMBER smallint int(1) smallint(1) NUMBER(2) int memo text CLOB text datetime datetime TIMESTAMP datetime long bigint NUMBER bigint decimal decimal NUMBER(20,2) ...
UniDAC can work with such servers as Oracle, Microsoft SQL Server, MySQL, Interbase, Firebird. The UniDAC library is designed to help programmers develop faster and cleaner cross-database ...