oracle 创建nchar类型,ORACLE8I中关于nchar,nvarchar2等类型的ORA-12704错误

我在oracle9i以上,插入和修改nchar,nvarchar2等类型字段时正常,但在8i版本遇到一条简单的插入语句,类型有nchar,nvarchar等字段的时候,出现ora-12704,字符集不匹配错误。

在8i,不建议使用NCHAR,NVARCHAR类型

另,8i不支持TIMESTAMP类型

见网文:

如果将列名声明成NCHAR、NVARCHAR2这样的类型,则insert和 select

等语句中的具体值前加N,不能直接按照普通字符类型进行操作。看下面例子:

SQL> create table nchar_tst(name nchar(6),addr

nvarchar2(16),sal number(9,2));

表已创建。

SQL> insert into nchar_tst

values(N'赵元杰',N'北京市海淀区',9999.99);

已创建 1 行。

SQL> select * from nchar_tst where name like

N'赵%';

NAME ADDR SAL

------ ---------------- ----------

赵元杰 北京市海淀区 9999.99

SQL> select * from nchar_tst where name like

'赵%';

select * from nchar_tst where name like '赵%'

*

ERROR 位于第 1 行:

ORA-12704: 字符集不匹配.

提示:虽然Oracle可以使用nchar, nvarchar2

类型来存放字符数据,但建议设计者不要使用NCHAR和NVARCHAR2。因为CHAR和VARCHAR2就能存放汉字。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值