c# - 将 Oracle DB 配置为默认采用双字节字符集

标签 c# sql oracle mono centos

我已经使用 AL32UTF8 设置了一个 Oracle 数据库。使用 SQLPlus 和 SQLDeveloper 等工具时,我可以将 DBCS 字符(中文、高 ascii 等)放入数据库中。

但是,当我使用 Oracle Instant Client 的应用程序尝试将数据放入数据库时​​,DBCS 字符会变成 ?分数。我能够解决这个问题并通过执行以下操作使事情正常进行:在运行我的应用程序的机器(CentOS)上导出 NLS_LANG='.AL32UTF8'。数据库位于单独的机器上。通过上述修复,我需要在所有客户端上设置 NLS_LANG。

我想要做的(如果可能的话)是配置数据库,使其假定客户端默认使用 NLS_LANG = '.AL32UTF8' ,因此不必在所有客户端上设置 NLS_LANG。这可能吗?如果是这样,怎么做?

最佳答案

这个设置只属于客户端,如果客户端假设默认是一些拉丁语,你不能在其他地方覆盖它。
另一方面,你总是可以做 ALTER SESSION设置所需NLS_LANG您的应用程序中的选项。

关于c# - 将 Oracle DB 配置为默认采用双字节字符集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19910689/

相关文章:

c# - 超过 64 位的位掩码(标志)枚举,带有存储在数据库中的逻辑分组的位数组

java - 如何编写 ETL 以根据 Oracle UNDO 设置进行操作?

c# - 如果 href 为空则隐藏 li 元素

c# - 与 Tibco spotfire 集成的系统

c# - 按 X 分钟分组时间,以 X 分钟间隔拆分

oracle - 从 Azure 数据工厂 v2 在 Oracle 中执行存储过程

sql - 为什么我的动态 to_char 不起作用?

c# - 从 c sharp 客户端应用程序上传到 PHP 服务器

php - 从 MySQL 结果中消除重复数据

mysql - 优化 Django-SQL 查询