zoukankan      html  css  js  c++  java
  • 【DataStage】11.5版本加载Oracle数据乱码问题

    1.问题描述

    在使用DataStage 11.5版本连接Oracle数据库做ETL工作的时候,发现一个问题,每次加载中文数据就乱码,很头疼,此处我的数据库编码格式是GBK,我进入DS的Adminstrator中将编码格式全部调整成了GB1231,屡试不爽啊!最终还是乱码,搞到崩溃,索性将DS中导入的字段全部添加Unicode属性,这样自己觉得还靠谱点,但是,问题来了,Unicode本身是做编码转化的,此处基于同一个编码的Oracle数据库来操作,何来编码转换之说呢?于是继续查找解决问题的办法。最终找了到一个合适的办法。在下文一一道来。

    2.问题解决

    (1) 首先查询出Oracle数据库的编码

    SELECT * FROM V$nls_Parameters 
           WHERE parameter in ('NLS_LANGUAGE', 'NLS_TERRITORY', 'NLS_CHARACTERSET')
    

    查询结果如下图:

    我们可以看到数据库编码是GBK

    (2)在DS Administrator,依次打开Project-->> 选择工程 -->> Propertites -->> Environment -->> User Defined, 然后添加NLS_LANG变量,如下图:
    特别说明:参数值是由上述查询结果拼接起来的,此处的值是AMERICAN_AMERICA.ZHS16GBK

    (3)将该参数导入到你的作业, 运行你的作业,让他跑起来,如果作业加载成功并且中文也不乱码,那么说明是由于该环境变量造成的影响,你就需要进行第4步操作;

    (4)找到dsenv文件,添加或者修改为以下内容:

    NLS_LANG=AMERICAN_AMERICA.ZHS16GBK;ecport NLS_LANG
    

    设置完成后,重启DS服务器即可。还得注意:dsenv一般位于$DSHOME下

  • 相关阅读:
    CGFloat,CGPoint,CGSize,CGRect
    对discuz的代码分析学习(三)mysql驱动
    对discuz的代码分析学习(二)首页文件
    对discuz的代码分析学习(一)目录结构
    获取HTML DOM
    html中如何使用特殊字体
    如何让元素自动居中
    前端分页
    页面缩放scale
    控制台获取当前年的月份列表
  • 原文地址:https://www.cnblogs.com/OliverQin/p/13050466.html
Copyright © 2011-2022 走看看