在 Oracle 中存储西里尔字母

发布于 2024-10-16 22:16:32 字数 569 浏览 2 评论 0原文

我的 Oracle 数据库具有以下设置,

NLS_CHARACTERSET                 EE8MSWIN1250
NLS_NCHAR_CHARACTERSET           AL16UTF16
NLS_LANGUAGE                     AMERICAN

我创建了包含一列 NVARCHAR2 类型的测试表,我将在其中存储西里尔字母。

我使用 SQL Developer 连接数据库。

问题是当我使用 SQL Developer 单元将西里尔字母链放入数据库时​​,数据存储正确。但是,当我使用 INSERT 查询来使用 N'' 或不使用 N'' 相同的数据时,数据将存储为问号。

有趣的是,由 SQL Developer 生成的查询和我编写的查询是相同的。

我通过将 NLS_CHARACTERSET 更改为 UTF8 解决了这个问题,但在生产服务器上我不能做这样的事情。

IMO 如果 SQL Developer 可以做到这一点,那么它必须是某种使用查询以正确的方式将西里尔字母存储到数据库中的方法。

问候

I have Oracle database with following settings

NLS_CHARACTERSET                 EE8MSWIN1250
NLS_NCHAR_CHARACTERSET           AL16UTF16
NLS_LANGUAGE                     AMERICAN

I've created test table with one column of type NVARCHAR2, where I'm going to store cyrillic.

I use SQL Developer to connect DB.

The problem is when I put a cyrillic chain into DB using SQL Developer cell, the data is stored correctly. But when I use INSERT query with the same data using N'' or not the data is stored as question marks.

Interesting thing is that query generated by SQL Developer, and written by me is identical.

I solved this problem by changing NLS_CHARACTERSET to UTF8, but on production server I can't do such a thing.

IMO it must be some way to store cyrillic into that DB in proper way using query if SQL Developer can do that.

Regards

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

月依秋水 2024-10-23 22:16:32

根据所使用的 ODBC/JDBC,计算机上的本地化设置可能会覆盖数据库中的任何配置值。在执行查询之前尝试使用 ALTER SESSION 并设置正确的 NLS 参数,看看是否有帮助。当您编辑数据单元格时,SQL 开发人员可能会在幕后执行此操作。

Depending on the ODBC/JDBC in use, localization settings on your computer may override any config values in the database. Try using ALTER SESSION and set the proper NLS parameters before executing your query, and see if that helps. SQL developer might do this behind the scenes when you edit the data cell.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文