Oracle设置默认NLS_LANG

2024-04-14

我在 RHEL6 上运行 Oracle 数据库 11g。如果没有客户端NLS_LANG,则设置某些utf8字符的长度为2。设置NLS_LANG=AMERICAN_AMERICA.UTF8后,长度仅为1。 如何更改整个数据库的默认 NLG_LANG?我不想只为会话更改这个值,或者像Linux中的环境变量一样。有没有可能将其设置为数据库通用?

SQL> select length('á') from dual;

LENGTH('??')
------------
           2

# export NLS_LANG=AMERICAN_AMERICA.UTF8

SQL> select length('á') from dual;

LENGTH('á')
-----------
          1

非常感谢您的任何想法


这就是可能发生的情况:

  • 您的客户端字符集必须类似于 CP1252 或 ISO-8859-15,而实际上您的客户端实际上使用 UTF8。
  • 在此字符集 (UTF8) 中,符号á占用两个字节,因此您的客户端发送这两个字节,同时告诉 Oracle 将它们视为 CP1252。在 CP1252 中,两个字符的两个字节代码导致 DB 将输入解释为两个字符,因此length('à')等于 2(如果插入此字符串,则插入结果不等于à)
  • 当你正确设置字符集时,输入会被oracle正确地视为单个字符,并且其长度为1(仍然是两个字节)。

结论:正确设置你的客户端字符集,否则你会得到翻译错误(这样你不会得到非法字符,但你可能会得到奇怪的符号(¿).

数据库字符集在创建时设置,通常通过导出/创建空白数据库/导入来更改。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Oracle设置默认NLS_LANG 的相关文章

随机推荐

  • `foo()` 和 `foo(void)` 之间的区别

    在Java中 这两个函数声明有什么区别吗 public void foo public void foo void Here https stackoverflow com questions 51032 is there a differ
  • aapt 获取“android:name”属性时出错:属性不是字符串值

    当我的 apk 生成时 我执行命令aapt dump badging在上面 我不断收到以下错误 application label 名称 icon res drawable icon 128x128 png 应用程序可调试可启动活动 nam
  • 获取 Windows Media Center 库中包含的目录

    我正在为 Media Center Windows 7 附带的版本 编写一个加载项 并且想要检索用户已包含在媒体库中的物理目录列表 图片 视频 录制的电视 电影 音乐 媒体中心对象模型 Microsoft MediaCenter 似乎没有任
  • VBA [类] - 如何访问另一个子中先前实例化的类实例

    我在程序的特定子程序中创建了类 Dog 的实例 Lassie 我还给了它一些有用的属性 例如 Lassie Age 7 和 Lassie HeelCapability False 现在我想访问anothersub 并将 Lassie Hee
  • 如何使用 Waterline 和 Sails.js(版本 0.10)从 mongo 数据库中提取不同的值?

    Using Sails js版本0 10 x 假设我有一个模型Dog 填充如下 写出yaml格式是为了方便起见 但就我而言 它实际上是在mongo数据库 dogs breed wolf name Fido breed wolf name R
  • SPRING4:无法读取候选组件类 CouchbaseConfig.class

    我有个问题 我正在使用 Spring4 我想添加一个配置以便能够使用 spring data couchbase 但我有一个错误 org springframework beans factory BeanDefinitionStoreEx
  • PackageBuilder.java 在 Drools 6.1.0.final 中不可用

    我是 drools 的新手 目前我们在项目中使用 Drools 5 4 0 目前我们使用Drools 5 4 0的RuleCompiler java和PackageBuilder java类来编译 xls文件并创建ruleSetObject
  • 如何在 iOS 中的 UIView 上应用模糊效果?

    在我的应用程序中 我想在 uiview 上应用模糊效果 那么我怎样才能实现模糊效果 我尝试通过下面的代码 UIGraphicsBeginImageContext scrollview bounds size scrollview layer
  • 检查 NSNumber 是否为空

    如何检查 NSNumber 对象是否为零或为空 好的 nil 很简单 NSNumber myNumber if myNumber nil doSomething 但是 如果对象已创建 但由于分配失败而没有任何值 我该如何检查呢 用这样的东西
  • OWIN 不记名令牌身份验证

    我有一些与不记名令牌相关的问题 在 欧文 您可以保护门票Protect ticket 像这样 ClaimsIdentity identity new ClaimsIdentity Startup OAuthServerOptions Aut
  • Rmarkdown 图像跳过文本

    我正在将 Rmarkdown PDF 文档与以下 YAML 设置放在一起 output pdf document fig caption true fig crop true toc depth 3 header includes usep
  • OpenCV - 如果从线程调用两次,imshow 就会挂起

    大家 我试图有一个单独的线程来显示和处理来自网络摄像头的图像 这些操作不能在主线程中 因为它专用于其他任务 我需要做的是停止并最终重新启动线程 发生的情况是 线程第一次运行 但在第二次运行时 imshow 调用永远冻结 我用一个偏离另一个S
  • 如何在工作区中的两个xcode项目之间共享文件?

    我了解了 Xcode 工作区 我知道如何共享静态库 但我想在工作区中的两个 Xcode 项目之间共享文件 是否可以一次运行多个目标 您能给我提供如何执行此操作的信息吗 提前致谢 即使项目位于同一级别 没有子项目 在同一工作区中的项目之间共享
  • 为什么只有第二个数组维度很重要?

    为什么在处理二维数组时只有第二维对编译器很重要 我就是无法理解这一点 谢谢 因为编译器需要弄清楚如何从内存中访问数据 第一个维度并不重要 因为当给定所有其他大小时 编译器可以计算项目的数量 例子 int a1 1 2 3 4 编译器知道为
  • SAS:如何计算除某些字符变量之外的所有字符变量的频率

    我知道我可以使用类似以下内容来计算所有字符的频率 proc freq data sashelp class tables char run 但是 有没有办法排除一些变量呢 我想做类似的事情 proc freq data sashelp cl
  • Ivy 通过 Nexus 代理

    有谁知道我如何在 Ivy 中指定 Maven 中的镜像 mirrorOf 之类的东西 我正在使用本地 Maven 代理 Nexus 并且需要该工具来指定 Nexus 代理应访问哪个父存储库 在 Maven 中我简单地做
  • 手势方法(平移手势和滑动手势)之间是否有优先级条件?

    我正在开发一个应用程序 其中使用了平移手势和滑动手势 因此 每次我执行 滑动手势 时 但总是会调用 平移手势 中的方法 而不会调用 滑动手势 方法 所有手势方法之间有优先级吗 您可以通过实现以下方法来并行调用它们UIGestureRecog
  • 如何在 android studio 中安装自定义库? [复制]

    这个问题在这里已经有答案了 我想做的是参考这个双向网格视图库 https github com jess anders two way gridview并在我的项目中使用该控件而不是标准的 gridview 它似乎没有以任何方式编译 你可以
  • 将 json 请求 POST 到 Solr,请求中带有cursorMark

    是否可以包括cursorMarkPOST 请求正文中的值而不是将其作为查询字符串参数发送 以下查询 query val abc limit 10 cursorMark sort id asc 返回一条错误消息 JSON 请求中未知的顶级键
  • Oracle设置默认NLS_LANG

    我在 RHEL6 上运行 Oracle 数据库 11g 如果没有客户端NLS LANG 则设置某些utf8字符的长度为2 设置NLS LANG AMERICAN AMERICA UTF8后 长度仅为1 如何更改整个数据库的默认 NLG LA