具有UTF8的NCHAR无法使用文件设置正确的捷克语单词

时间:2018-09-10 14:03:10

标签: sql oracle utf-8 nchar

我想问您关于一件事或只是您的观点的帮助。

我们在PL / SQL中的脚本可以正常工作。但是现在,当我要运行它时,它无法正确设置诸如(ěščěščěřěščřěš)之类的捷克字。

我在此处的stackoverflow中阅读了将NCHAR添加到代码前面的操作,因此我这样做了,并且只有在将这段代码直接放入Toad中供Oracle进行控制台时,它才起作用。但是,当我想为每个应用程序上载/运行此脚本时,我们会看到 ???? 而不是正确的字母。

我已经检查了很多次UTF-8,我在许多编码之间进行了切换,并测试了我在记事本,PSPadd中尝试过的方法,但没有任何效果。因此,这一定与该文件的编码属性有关吗?

  

插入语句

INSERT INTO OUR_TABLE ( Client_No, Contact_Type, 
Postal_Code, Address) Values ('999999','TTT','CZ',RPAD(N'Vladimír 
Müller', 35) ||RPAD(N'Kovozal s.r.o.', 35) || RPAD(N'Zálší 74', 35) || 
RPAD(N'565 01 Zálší', 35));

如果没有NNCHAR),旧脚本可以很好地工作。但是现在没有。我认为除了问一些Oracle管理员之外,没有其他解决方案吗?

我再说一次NRPAD可以在控制台中找到,但不允许管理员在控制台中运行此脚本:他们必须以文件形式接收数据。

你会怎么做?

1 个答案:

答案 0 :(得分:1)

UNIX和TOAD中的SQL客户端不同。您在IDE中使用了不同的NLS_LANG UTF16 ),这使您相信显示了错误的字符。

因此解决方案是在您的IDE中将NLS_LANG更改为 UTF8