在Sql中插入UNICODE字符

时间:2010-10-28 05:41:24

标签: sql unicode sqlplus

我正在尝试将unicode字符串添加到SQL * Plus:Release 10.2.0.2.0数据库中,但遇到了困难。如果我使用SQLPlus并将insert语句复制并粘贴到数据库中,那么会插入任何特殊字符吗?或类似的东西。然后我尝试调用已编码为UTF-8的sql文件,结果相同。 有谁知道如何将unicode数据导入数据库?

任何人都可以提供帮助。如何在sqlplus

中设置NLS_LANG选项

4 个答案:

答案 0 :(得分:1)

SQL * Plus不是数据库,它是SQL或PL / SQL数据库的基于命令行的前端。命令行通常仅支持ANSI或ASCI编码字符。因此,当您尝试粘贴命令时,程序(SQL * Plus)只是替换了无法弄清楚如何用“?”编码的文本。分数。您可能需要切换到其他客户端应用程序才能使用UTF-8

答案 1 :(得分:0)

就我而言,问题不在sqlplus中,而在运行数据库的环境中。设置好之后

NLS_LANG=RUSSIAN_RUSSIA.UTF8

我可以插入unicode字符而不会产生任何失真。 要使其生效,可能需要重新启动(db或OS或两者)。我在Docker中运行Oracle XE数据库 我必须将-e NLS_LANG=RUSSIAN_RUSSIA.UTF8添加到docker run...命令中,如下所示:

docker run -d --rm -p 49161:1521 --name db -e NLS_LANG=RUSSIAN_RUSSIA.UTF8 -e ORACLE_ALLOW_REMOTE=true wnameless/oracle-xe-11g

答案 2 :(得分:-1)

设置NLS_LANG环境变量以使SQL * Plus了解您正在使用的字符表示。

http://www.sqlsnippets.com/en/topic-13434.html

答案 3 :(得分:-2)

尝试围绕这个陈述使用某些东西

update pp.pp_employee t  
set t.first_name=UNISTR('АБДАЛЛА')   
where t.emp_id =  5451  ;