SQL Server 2005下的,Integration Services Project项目中(即SSIS),拉了一个Data Flow Task,双击进去,拉了2个控件,一个是OLE DB Source 一个是OLE DB Destination。在对OLE DB Source进行数据库源配置时,提示了一个警告,信息如下:Validation error. Data Flow Task: OLE DB Destination[916]: The column "CITY" cannot be processed because more than one code page (936 and 1252) are sepcified for it.我知道把这个Source的属性里的AlwaysUseDefaultCodePage属性由默认的False改成True后,这个警告会没掉。
但是在配置Destination时,却跳出了15个类似的这个错误,(列名不同,其他的信息一样),我第一次做的时候,Source的警告信息我不理它,然后做目标数据时,并不提示错误的。
我这个SSIS的数据转换是从Oracle数据库(Source)里读数据到SQL Server数据库(Destination)里。
谁给个解决这个问题的方向,或者谁能帮忙解决,更是感谢。
我在网络上查到的信息有
936是简体中文,1252是美国英语,所以我怀疑是编码的问题,但是这个信息我查到的都是做ASP的朋友发的帖子的。和这个sql server里的是不是说一个事情,我不清楚。而且我有这个编码怀疑,但是去哪查看现在的编码和修改编码我不知道。

解决方案 »

  1.   

    环境你的语言环境,设置正确的LocaleID值,这个选项属性页里可以找到.
      

  2.   

    1252应该是Unicode的编码吧?在数据流里面有一个控件叫做数据转换,不管你从哪里来的数据,你都先转换成unicode string, 再往数据库里面放活着做其他的操作。
      

  3.   


    SQL和ORACLE之间的数据查询配置透明网关的步骤
    前一段花了些时间配置 TRANSPARENT GATEWAY
    现在把心得贴出来与大家共享我的OS是WIN2000  
    ORACLE 9.0
    SQLSERVER2000
    HOSTNAME : SVR1
    都使用 tcp/ip 默认端口
    1: 安装 TRANSPARENT GATEWAY 选件(我安装的是FOR MSSQL)
       安装完成了以后有这样一个目录 oracle_home\ora90\tg4msql2: 配置 LISTENER.ORA
        (SID_DESC =
          (GLOBAL_DBNAME = tg4sql) # 可自己命名
          (PROGRAM = tg4msql)
          (SID_NAME = sql2000)  # SID 自己命名
          (ORACLE_HOME = D:\oracle\ora90)
        )3: 在 oracle_home\ora90\tg4msql\admin
       建文件 init<SID>.ora 由于LISTENER里定义SID为 sql2000
       因此文件名为:initsql2000.ora
       其中内容为:
       HS_FDS_CONNECT_INFO=svr1.master # svr1为SQL服务器名
       HS_FDS_TRACE_LEVEL=OFF
       HS_FDS_RECOVERY_ACCOUNT=RECOVER
       HS_FDS_RECOVERY_PWD=RECOVER4: 重启 DATABASE AND LISTENER5: 配置 tnsnames.ora
    tg_sql = 
      (DESCRIPTION = 
        (ADDRESS_LIST = 
          (ADDRESS = (PROTOCOL = TCP)(HOST = SVR1)(PORT = 1521)) 
        ) 
        (CONNECT_DATA = 
          (SID = sql2000) 
        ) 
        (HS=OK) 
      ) 6: 建立 DATABASE LINK
    CREATE PUBLIC DATABASE LINK DB_SQL
    CONNECT TO SA IDENTIFIED BY PASSWORD
    USING 'tg_sql'7: 完成,测试
      select * from t_test@db_sql8: 请注意使用 DBLINK 时,INIT.ORA中 GLOBAL_NAME 的设置,
      如果为 ture , 请使用DBLINK的全称,可在 all_db_links 中查到,
      如果为 FALSE, 不必使用全称,当出现 
      “ORA-02019:为找到远程数据库的连接说明”
      时,请使用全称,如:
      select * from t_test@db_sql.US.ORACLE.COM
      

  4.   

    在SQL SERVER 20000中访问Oracle数据库服务器的几种方法 1.通过行集函数opendatasource
    要求:本地安装Oracle客户端
    select *  from opendatasource('MSDAORA', 'Data Source=XST4;User ID=manager;Password=sjpsjsjs')..MISD.PBCATCOL
    其中,MSDAORA是OLEDB FOR Oracle的驱动,注意:用户名和表名一定要大小,服务器和用户名之间是两个点;
    例如:
    select top 10 *  from opendatasource('MSDAORA', 'Data Source=HZTEST;User ID=osstest;Password=a1234')..OSSTEST.SUBSCRIBER本地Oracle客户端配置文件中内容如下:
    HZTEST =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 132.149.7.19)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SID = test)
        )
      )2. 使用MS SQL的openrowset函数
    select A.* from openrowset('MSDAORA','XST4';'manager';'sjpsjsjs', 'MISD.PBCATCOL') as A 
    order by A.ID
    使用这种方式一定要用别名才行3.使用ODBC方式
    select A.* from openrowset('MSDAORA','XST4_ODBC';'manager';'sjpsjsjs', 'MISD.PBCATCOL') as A order by A.ID
    XST4_ODBC是ODBC数据源4.使用链接服务器方式
    EXEC SP_ADDLINKEDSERVER
    @server='mylinkedserver',      --链接服务器名称
    @srvproduct='Oracle',          --固定
    @provider='MSDAORA',           --固定
    @datasrc='XST4'                --Oracle本地服务名
    该文章转载自德仔工作室:http://www.dezai.cn/article_show.asp?ArticleID=17285
      

  5.   

    dawugui,你说的是什么意思?我完全没明白你这两个帖子和我帖子的关系。
      

  6.   

    帖子别沉了。问题没解决呢。
    就3楼的 CN_SQL 的回帖有点用处。
      

  7.   

    人呢?都回家过年了,不上CSDN了吗???55555……
      

  8.   

    老大,你是不是没有看见四楼的回复...给你说了,如果你要传的列是string的话,先用数据转换的控件都转成unicode string再做其他的操作
      

  9.   

    Hi,
    估计你的数据的Collation为Chinese_PRC_CI_AS或则Chinese_PRC_CI_AI--查看数据库Testshen下Collation的属性
    SELECT DATABASEPROPERTYEX('Testshen', 'Collation') --Chinese_PRC_CI_AS
    --查看Collation和Codepage的对应关系
    SELECT NAME  FROM ::fn_helpcollations() WHERE COLLATIONPROPERTY(NAME,'CodePage')=936--结果如下:
    Chinese_PRC_BIN
    --Chinese_PRC_BIN2
    --Chinese_PRC_CI_AI
    --Chinese_PRC_CI_AI_WS
    --Chinese_PRC_CI_AI_KS
    --Chinese_PRC_CI_AI_KS_WS
    --Chinese_PRC_CI_AS
    --Chinese_PRC_CI_AS_WS
    --Chinese_PRC_CI_AS_KS
    --Chinese_PRC_CI_AS_KS_WS
    --Chinese_PRC_CS_AI
    --Chinese_PRC_CS_AI_WS
    --Chinese_PRC_CS_AI_KS
    --Chinese_PRC_CS_AI_KS_WS
    --Chinese_PRC_CS_AS
    --Chinese_PRC_CS_AS_WS
    --Chinese_PRC_CS_AS_KS
    --Chinese_PRC_CS_AS_KS_WS
    --Chinese_PRC_90_BIN
    --Chinese_PRC_90_BIN2
    --Chinese_PRC_90_CI_AI
    --Chinese_PRC_90_CI_AI_WS
    --Chinese_PRC_90_CI_AI_KS
    --Chinese_PRC_90_CI_AI_KS_WS
    --Chinese_PRC_90_CI_AS
    --Chinese_PRC_90_CI_AS_WS
    --Chinese_PRC_90_CI_AS_KS
    --Chinese_PRC_90_CI_AS_KS_WS
    --Chinese_PRC_90_CS_AI
    --Chinese_PRC_90_CS_AI_WS
    --Chinese_PRC_90_CS_AI_KS
    --Chinese_PRC_90_CS_AI_KS_WS
    --Chinese_PRC_90_CS_AS
    --Chinese_PRC_90_CS_AS_WS
    --Chinese_PRC_90_CS_AS_KS
    --Chinese_PRC_90_CS_AS_KS_WS
    --Chinese_PRC_Stroke_BIN
    --Chinese_PRC_Stroke_BIN2
    --Chinese_PRC_Stroke_CI_AI
    --Chinese_PRC_Stroke_CI_AI_WS
    --Chinese_PRC_Stroke_CI_AI_KS
    --Chinese_PRC_Stroke_CI_AI_KS_WS
    --Chinese_PRC_Stroke_CI_AS
    --Chinese_PRC_Stroke_CI_AS_WS
    --Chinese_PRC_Stroke_CI_AS_KS
    --Chinese_PRC_Stroke_CI_AS_KS_WS
    --Chinese_PRC_Stroke_CS_AI
    --Chinese_PRC_Stroke_CS_AI_WS
    --Chinese_PRC_Stroke_CS_AI_KS
    --Chinese_PRC_Stroke_CS_AI_KS_WS
    --Chinese_PRC_Stroke_CS_AS
    --Chinese_PRC_Stroke_CS_AS_WS
    --Chinese_PRC_Stroke_CS_AS_KS
    --Chinese_PRC_Stroke_CS_AS_KS_WS
    --Chinese_PRC_Stroke_90_BIN
    --Chinese_PRC_Stroke_90_BIN2
    --Chinese_PRC_Stroke_90_CI_AI
    --Chinese_PRC_Stroke_90_CI_AI_WS
    --Chinese_PRC_Stroke_90_CI_AI_KS
    --Chinese_PRC_Stroke_90_CI_AI_KS_WS
    --Chinese_PRC_Stroke_90_CI_AS
    --Chinese_PRC_Stroke_90_CI_AS_WS
    --Chinese_PRC_Stroke_90_CI_AS_KS
    --Chinese_PRC_Stroke_90_CI_AS_KS_WS
    --Chinese_PRC_Stroke_90_CS_AI
    --Chinese_PRC_Stroke_90_CS_AI_WS
    --Chinese_PRC_Stroke_90_CS_AI_KS
    --Chinese_PRC_Stroke_90_CS_AI_KS_WS
    --Chinese_PRC_Stroke_90_CS_AS
    --Chinese_PRC_Stroke_90_CS_AS_WS
    --Chinese_PRC_Stroke_90_CS_AS_KS
    --Chinese_PRC_Stroke_90_CS_AS_KS_WS建议你将你的OLE DB Destination组件的AlwaysUseDefaultCodePage属性由False改为True