java.sql.Clob和java.sql.NClob有什么区别吗?java.sql.NClob接口没有新的方法。我尝试了以下几种方法:
设置SQL:
create table tab(id number(2), clobcol clob, nclobcol nclob)
insert into tab values (1, to_clob('你好'), to_nclob('你好'))JDBC代码:
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();我还尝试了一些其他方法,看起来与输出没有区别。有什么特别的我可以看到一些不同之处吗?
在数据库中添加了支持的字符集:
SELECT parameter, value
FROM v$nls_parameters
3 WHERE parameter LIKE '%CHARACTERSET';
PARAMETER VALUE
--------------------------------- --------------------
NLS_CHARACTERSET AL32UTF8
NLS_NCHAR_CHARACTERSET AL16UTF16发布于 2017-02-22 01:37:47
在过去(80年代),许多数据库都是使用US7ASCII (在美国)或ISOLATIN1 (在欧洲)作为字符集创建的。对于今天仍然存在的这些数据库(经过多次升级),存储非ASCII字符串数据的唯一方法是使用特殊类型NVARCHAR或NCLOB。直接使用UTF8 (现在是Oracle中的默认编码)创建的较新数据库不使用这些Nxxx类型。
https://stackoverflow.com/questions/42358650
复制相似问题