如何在oracle 11g中插入印度卢比符号?

如何在oracle 11g中插入印度卢比符号?,oracle,insert,oracle11g,Oracle,Insert,Oracle11g,我想在oracle 11g中插入印度卢比符号 我试过: insert into currency(name, symbol) values ('rupee', unistr('\20B9')); 但它不起作用 选择ascii('₹') 从dual;中,它给出卢比符号的ascii值,但插入后,它会在行中显示方框 在这里你可以看到 SELECT chr(14844601) FROM dual; 似乎您只需要在SQL Developer中更改字体。请检查 您的问题文本中有两个错误:要从中获取uni

我想在oracle 11g中插入印度卢比符号

我试过:

insert into currency(name, symbol) values ('rupee', unistr('\20B9'));
但它不起作用

选择ascii('₹') 从dual;
中,它给出卢比符号的ascii值,但插入后,它会在行中显示方框

在这里你可以看到

SELECT chr(14844601) FROM dual;

似乎您只需要在SQL Developer中更改字体。请检查

您的问题文本中有两个错误:要从中获取unicode符号,必须使用代码函数而不是。第二个错误是
₹'常量字符串被视为
varchar2
,要正确指定
nvarchar2
常量,请将您设置为该文本:
N'₹'

要更改字体,只需打开
Tools->Preferences…
菜单

然后选择
代码编辑器->字体
节点。在此页面,您可以从
字体名称
下拉列表中选择字体。将卢比符号复制并经过
示例文本
字段,以快速查看字体是否可接受。 Arial(在win7上)对我来说很好:

此设置将更改网格字体以及代码编辑器中的字体:

上述操作仅为获得卢比符号支持的一半,因为
select N'₹' from dual
将只返回问号。这是因为客户端和服务器端之间进行了查询文本编码转换。
为了解决此问题,Oracle。此设置指导客户端API分析前缀为
N
的字符常量的查询文本,并在将查询文本传输到服务器之前在客户端使用特殊的内部格式对此类数据进行编码。不幸的是,SQL Developer使用瘦JDBC API忽略此环境设置,因此添加is环境变量不能解决问题

但是,必须对作用于系统和连接级别的
oracle.jdbc.convertNcharLiterals
属性启用相同的行为。
要打开此属性,请在SQL Developer安装文件夹的
sqldeveloper\ide\bin
目录中找到
ide.conf
文件,并将此行添加到文件末尾:

AddVMOption -Doracle.jdbc.convertNcharLiterals=true
保存文件并重新启动SQL Developer,现在一切都必须正常:


p.S.说明基于SQL Developer 3.2版,旧版本可能有另一个配置文件位置。例如,
sqldeveloper\bin\sqldeveloper.conf

可能是您的客户端unicode/语言/字体设置。我使用的是外语,无法在sqlplus命令行中显示。我已编辑了说明。请检查我是否已经检查了该问题,但Oracle没有答案。请在客户端上发布
货币
表的定义、数据库的字符集设置和Oracle区域设置。哪个客户端应用程序用于显示结果?是否用于
符号
字段?