首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JDBC Clob和NClob

JDBC Clob和NClob
EN

Stack Overflow用户
提问于 2017-02-21 12:21:57
回答 1查看 1K关注 0票数 1

java.sql.Clobjava.sql.NClob有什么区别吗?java.sql.NClob接口没有新的方法。我尝试了以下几种方法:

设置SQL:

代码语言:javascript
复制
create table tab(id number(2), clobcol clob, nclobcol nclob)
insert into tab values (1, to_clob('你好'), to_nclob('你好'))

JDBC代码:

代码语言:javascript
复制
conn = getConnection();
stmt = conn.createStatement();
rs = stmt.executeQuery("select * from tab");
rs.next();
Clob c = rs.getClob(2);
NClob nc = rs.getNClob(3);
InputStream inputStream1 = c.getAsciiStream();
InputStream inputStream2 = nc.getAsciiStream();
System.out.println(inputStream1.available());
System.out.println(inputStream2.available());
c.free();
nc.free();

我还尝试了一些其他方法,看起来与输出没有区别。有什么特别的我可以看到一些不同之处吗?

在数据库中添加了支持的字符集:

代码语言:javascript
复制
SELECT parameter, value
  FROM v$nls_parameters
  3   WHERE parameter LIKE '%CHARACTERSET';

PARAMETER             VALUE
--------------------------------- --------------------
NLS_CHARACTERSET          AL32UTF8
NLS_NCHAR_CHARACTERSET        AL16UTF16
EN

回答 1

Stack Overflow用户

发布于 2017-02-22 01:37:47

在过去(80年代),许多数据库都是使用US7ASCII (在美国)或ISOLATIN1 (在欧洲)作为字符集创建的。对于今天仍然存在的这些数据库(经过多次升级),存储非ASCII字符串数据的唯一方法是使用特殊类型NVARCHAR或NCLOB。直接使用UTF8 (现在是Oracle中的默认编码)创建的较新数据库不使用这些Nxxx类型。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42358650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档