m0_47799925 2023-10-12 18:14 采纳率: 14.3%
浏览 3

SSIS数据迁移的一个问题

SSIS数据迁移相关问题求指导

为什么我用ssis迁数据,连接管理器用oracle provider for oledb会报标识符错误,同样的组件用microsoft oledb for oracle就可以正常运行。组件为OLEDB 源。

img

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-10-13 04:18
    关注

    【相关推荐】



    • 这篇博客: SQL Server创建链接服务器的几种方式中的 5. 使用Oracle OLEDB驱动提供程序链接Oracle数据库 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

      Oracle Data Access Components (ODAC)
      这种方法与第四种instant client创建odbc驱动链接的方式存在冲突,OLEDB驱动安装之后也会安装instant client的basic组件。所以需要删除之前的Path环境变量中instant client的路径,修改为稍后要创建的新路径。或者将之前的ODBC驱动重新安装到这个instant client目录中,不再使用之前的instant client。
      首先需要下载OLEDB驱动,同样,我下载64位版本:

      https://www.oracle.com/database/technologies/odac-downloads.html

      在这里插入图片描述
      在这里插入图片描述
      解压:
      在这里插入图片描述

      这个压缩包是包含了安装说明的文档的,里面有readme.htm。文档里也有讲,可以全部安装,也可以选择需要的组件进行安装。我这里就只安装我需要的就行了。在当前目录打开命令窗口,输入:

      install.bat oledb c:\oracleOLEDB ODAC
      

      在这里插入图片描述
      其中oledb代表要安装的组件,c:\oracleOLEDB为安装目录,ODAC为注册表项Oracle Home的名称,卸载的时候使用uninstall.bat(需要到安装目录下使用这个命令,而不是刚刚的解压目录里),带这个名字或者目录都行。卸载命令:

      uninstall.bat all ODAC
      

      安装完成之后,就会出现OraOLEDB.Oracle这个访问接口了
      在这里插入图片描述
      在这里插入图片描述
      接口的属性里有一些设置选项,自己酌情勾选,建议勾选"允许进程内"。
      别着急去创建链接服务器,在系统环境变量中,为Path添加“C:\oracleOLEDB;C:\oracleOLEDB\bin;”(计算机属性-高级系统设置-高级-环境变量-系统环境变量-Path),如果之前安装过instant client,需要删除其路径,否则在SQL Server管理工具创建链接服务器时会卡死。
      如果是供外部应用程序访问,还需要配置TNS_ADMIN和NLS_LANG环境变量,配置方式参考第四步。
      最后创建链接服务器:
      在这里插入图片描述
      由于OLEDB驱动支持EZCONNECT,所以不配置tnsnames.ora也是可以的,使用IP:端口号/实例名也可以:
      在这里插入图片描述

      安全性设置不用说了,一样。
      这种驱动创建的链接服务器可以使用下面这种方式进行查询,也可以使用前面的openquery方式查询。

      select * from ORACLEOLEDB..SYSTEM.TEST
      

      SYSTEM是我TEST表创建时选择的方案,注意方案前面试两个点。注意Oracle区分大小写,否则会无法查询。

      以下引用内容出自:https://blog.csdn.net/jack_33/article/details/7620100

      通过OleDB连接Oracle数据库,一般有两种provider
      A:provider=MSDAORA.1
      B:provider=OraOLEDB.Oracle
      第一种为微软公司的oracle组件,第二种为oracle的访问组件。
      Oracle数据库经常使用的两种字符集
      C:英文:SIMPLIFIED CHINESE_CHINA.US7ASCII
      D:中文:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
      A与C、D搭配,数据读写没有乱码问题,如果出现乱码,则修改系统级(非用户级)的环境变量nls_lang为数据库所使用的字符集,重启电脑即可。
      缺点:不支持long/Clob/Blob大字段。
      B支持大字段,与D搭配最为完美。如果BC搭配使用,读出无乱码,写入为乱码,做为where条件传进去的中文参数为乱码。无法使用。如果数据库字符集为C,则只能使用A。如果要读取大字段,只得使用B新建连接

      MSDAORA仅支持32位,64位机器上可能已经没有带该驱动了。
      下载链接:https://www.microsoft.com/zh-CN/download/details.aspx?id=5793
      在这里插入图片描述


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 10月12日

悬赏问题

  • ¥15 爬取1-112页所有帖子的标题但是12页后要登录后才能 我使用selenium模拟登录 账号密码输入后 会报错 不知道怎么弄了
  • ¥30 关于用python写支付宝扫码付异步通知收不到的问题
  • ¥50 vue组件中无法正确接收并处理axios请求
  • ¥15 隐藏系统界面pdf的打印、下载按钮
  • ¥15 MATLAB联合adams仿真卡死如何解决(代码模型无问题)
  • ¥15 基于pso参数优化的LightGBM分类模型
  • ¥15 安装Paddleocr时报错无法解决
  • ¥15 python中transformers可以正常下载,但是没有办法使用pipeline
  • ¥50 分布式追踪trace异常问题
  • ¥15 人在外地出差,速帮一点点