我正在尝试将unicode字符串添加到SQL * Plus:Release 10.2.0.2.0数据库中,但遇到了困难。如果我使用SQLPlus并将insert语句复制并粘贴到数据库中,那么会插入任何特殊字符吗?或类似的东西。然后我尝试调用已编码为UTF-8的sql文件,结果相同。 有谁知道如何将unicode数据导入数据库?
任何人都可以提供帮助。如何在sqlplus
中设置NLS_LANG选项答案 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了解您正在使用的字符表示。
答案 3 :(得分:-2)
尝试围绕这个陈述使用某些东西
update pp.pp_employee t
set t.first_name=UNISTR('АБДАЛЛА')
where t.emp_id = 5451 ;