Oracle 中的 UTF-8 字符

mar*_*ami 2 oracle encoding plsql utf-8 plsqldeveloper

我想使用 INSERT 语句在 Oracle 12 数据库中插入 UTF-8 字符。我正在使用 PL/SQL Developer Tool(版本 8)。

\n\n

当我运行此 INSERT 语句时

\n\n
INSERT INTO my_table (my_column) VALUES ('\xe1\x83\xa2\xe1\x83\x94\xe1\x83\xa5\xe1\x83\xa1\xe1\x83\xa2\xe1\x83\x98');\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后运行 ​​SELECT 语句

\n\n
SELECT my_column FROM my_table\n
Run Code Online (Sandbox Code Playgroud)\n\n

它返回问号

\n\n
??????\n
Run Code Online (Sandbox Code Playgroud)\n\n

但是,当我将 UTF-8 文本手动(使用复制和粘贴)插入表中,然后运行相同的 SELECT 语句时,它会正确返回数据

\n\n
\xe1\x83\xa2\xe1\x83\x94\xe1\x83\xa1\xe1\x83\xa5\xe1\x83\xa2\xe1\x83\x98\n
Run Code Online (Sandbox Code Playgroud)\n\n

在使用 insert 语句插入 UTF-8 字符之前我应该​​运行任何命令吗?

\n

nop*_*svk 9

在字符串前面加上nas in前缀

\n\n
INSERT INTO my_table (my_column) VALUES (n'\xe1\x83\xa2\xe1\x83\x94\xe1\x83\xa5\xe1\x83\xa1\xe1\x83\xa2\xe1\x83\x98');\n
Run Code Online (Sandbox Code Playgroud)\n\n

这将告诉您的 Oracle DB 输入值是nvarchar2数据类型。

\n