求救:nvarchar2(1024),更新进去1024长度的值,检索出来却只有1000了! 一个表中有一个长度为1024的nvarchar2型字段,用update更新为长度为1024的值,更新成功。但是检索出来后却只有前1000位了,谁能告诉我原因啊?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 nvarchar2数据类型最大支持长度就是1000字符,用来存储Unicode字符集的变长字符型数据,长度<=1000字节。 nvarchar2数据类型最大支持长度就是2000字节,用来存储Unicode字符集,1个Unicode字符=2个字节,所以最多存储1000个字符。 更正一下:NVARCHAR2数据类型最大支持长度是1000字符,用来存储Unicode字符集的变长字符型数据,而UNICODE数据都是双字节数据,NVARCHAR2(n)的 n 代表字符数为非字节数。 而且,似乎按照各位的说法,nvarchar2(1024)最大只能存储512个Unicode字符,为什么最后可以到1000呢? 1、NVARCHAR2(n)的 n 代表字符数为非字节数。2、估计是在update操作执行成功之前已经被截断了。 谢谢回答,但是还是有些疑问:1)既然n是代表字符数,而nvarchar2有定下来之能最大1000个字符,为什么创建的时候可以创建长度在1000-2000之间的nvarchar2字段呢?2)我是直接update的,没有通过程序…… 而且如果我使用的值是1025的话,更新就会失败!哪位达人能解释一下nvarchar2的机制吗?和字符集会不会有什么关系呢? 我用的是日文版oracle9i 哈哈,解决了。用to_nchar把1024的值给括起来就可以了~~~不过还有个迷惑的地方,为啥1024长度的值就不能用 preparedStatement.setString了呢?有没有什么代替的可以用?我现在是放弃了preparedStatement,直接拼起来的。 数据库问oracle11g 理论上,一个数据库是否可以无限大? SQL*PLUS中显示列长度格式的问题 一个变态的排列组合的数据库设计 oracle 左右连接问题 oracel 10g express 怎样链接Sql server 提问SQL语句 再线送分!~!!! 菜鸟问 请问在pl/sql如何捕捉出现错误的位置(源文件代码行的位置) Neo4j图数据库为什么可以重复插入同一条数据,怎么可以不重复插入 请教Between函数的用法 在线等! QQ:15493898 求救!!PL/SQL的问题 我都快郁闷死了 在线等
2)我是直接update的,没有通过程序…… 而且如果我使用的值是1025的话,更新就会失败!哪位达人能解释一下nvarchar2的机制吗?和字符集会不会有什么关系呢? 我用的是日文版oracle9i
有没有什么代替的可以用?我现在是放弃了preparedStatement,直接拼起来的。