我想在oracle 11g中插入印度卢比符号。
我试过了:
insert into currency(name, symbol) values ('rupee', unistr('\20B9'));
但它不起作用。
SELECT ascii('₹') FROM dual;
它给出卢比符号的ascii值,但插入后在行中显示box。
在这里你可以看到
SELECT chr(14844601) FROM dual;
似乎您只需要在SQL Developer中更改字体。检查此SQLFiddle。
您的问题文本中有两件事是错误的:要从其代码nchr()
函数中获取unicode符号,必须使用而不是chr()
。其次是将'₹'
常量字符串视为,varchar2
并正确指定nvarchar2
常量,您必须N
在此文字之前加上:N'₹'
。
要更改字体,只需打开Tools -> Preferences ...
菜单
并选择Code Editor -> Fonts
节点。在此页面上,您可以从Font Name
下拉列表中选择字体。将卢比符号复制并粘贴到Sample Text
字段中以快速查看字体是否可接受。Arial(在win7上)对我来说效果很好:
此设置将更改网格字体以及代码编辑器中的字体:
Actions above puts you only to a half of the way to get full rupee symbol support because select N'₹' from dual
will return only question sign. This is because of query text encoding conversion done between client and server side.
To deal with this issue Oracle provides ORA_NCHAR_LITERAL_REPLACE environment setting. This setting guides client API to analyze query text for character constants prefixed with N
and use special internal format to encode such a data on client side before transferring query text to server. Unfortunately SQL Developer uses Thin JDBC API which ignores this environment setting, so adding this environment variable doesn't solve a problem.
但是,还有另一种方法可以使用oracle.jdbc.convertNcharLiterals
在系统和连接级别上起作用的属性来打开相同的行为。
要打开此属性,请在SQL Developer安装文件夹的目录中找到ide.conf
文件sqldeveloper\ide\bin
,并将此行添加到文件末尾:
AddVMOption -Doracle.jdbc.convertNcharLiterals=true
保存文件并重新启动SQL Developer,所有事情现在都可以正常工作:
基于SQL Developer版本3.2的PS指令,旧版本可能具有配置文件的其他位置。例如sqldeveloper\bin\sqldeveloper.conf
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句