【问题标题】:How to insert LONG BINARY from SQL Server to Oracle如何将 LONG BINARY 从 SQL Server 插入 Oracle
【发布时间】:2013-06-05 19:02:14
【问题描述】:

我需要将 SQL Server 2008 表的副本复制到 Oracle RDBMS 中。我有 SQL Server 的数据库链接,数据库有一个包含 LONG BINARY 类型列的表。

当我发布时

create table test_ora as select * from mssqltable@dblink 

我得到了错误

无法转换 LONG

我尝试使用to_lobto_charhextoraw 和一堆Oracle 转换功能,但仍然没有解决这个问题。你有什么想法?

附言我现在没有工作,所以无法准确说出ORA- 错误号。

【问题讨论】:

  • Oracle 有一个迁移实用程序,它可能能够为您移动整个表。
  • 什么是 SQL Server 中的 LONG BINARY,文档会指出此数据类型不存在...这里是 Oracle's SQL-Server to Oracle conversion tables
  • 我不想使用任何迁移工具,因为脚本应该每天运行
  • 确切错误 - ORA-00932:不一致的数据类型:至少在我使用 to_char 时,预期的 CHAR 得到了 LONG BINARY。如果我使用 to_blob 它返回 ORA-22992: annot use LOB locators selected from remote tables

标签: sql sql-server oracle plsql


【解决方案1】:

有一种方法可以使用未记录的 Oracle 软件包:

http://tonguc.wordpress.com/2008/08/28/how-to-transfer-long-datatype-over-dblink/

我会推荐名为 Pentaho Data Integration 的工具。这是一款免费、小巧、出色的 ETL 工具。

下载页面:community(.)pentaho(.)com

它将为您重新创建所有表和类型。怎么做:

pldwh(.)blogspot(.)co(.)uk/2013/03/pentaho-data-integration-create-tables_1(.)html

【讨论】:

  • 不幸的是它不起作用。我在 dblink 旁边有 MsSQL,所以一旦我使用 SYS.dbms_metadata_util.long2varchar(4000,'"_abc"@MSDB','"_Type"',rowid) Oracle 失败并显示消息 ORA-02070 数据库 MSDB 在此不支持 ROWID语境。看来您的建议仅在 2 个 oracle 数据库之间可行...
  • 糟糕!我的错!错误的包... DBMS_HS_PASSTHROUGH。链接:connormcdonald.wordpress.com/2012/07/18/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-07
  • 1970-01-01
  • 1970-01-01
  • 2021-01-30
  • 1970-01-01
相关资源
最近更新 更多