【发布时间】:2016-01-27 11:48:18
【问题描述】:
过去提出的问题似乎可以处理我的全部问题,但我没有找到一个完全好的答案。
情况如下:
- 我正在从旧的但可操作和生产的 Oracle 服务器导入数据。
- 其中一列被创建为 LONG RAW。
- 我将无法将表转换为 BLOB。
- 我想在每次调用服务器时使用全局临时表来提取数据。
这感觉是一个很好的答案,来自这里:How to create a temporary table in Oracle
CREATE GLOBAL TEMPORARY TABLE newtable
ON COMMIT PRESERVE ROWS
AS SELECT
MYID, TO_LOB("LONGRAWDATA") "BLOBDATA"
FROM oldtable WHERE .....;
我不想让桌子到处乱晃,我一次只做一大块行,把旧桌子拉成碎片,每次都把桌子弄死。执行 CREATE,然后执行 SELECT,然后 DROP 是否可以接受?
谢谢..
--- 编辑 ---
作为后续行动,我决定采取不同的方法来解决这个问题。
分支strong-oracle 包,我能够做我最初希望做的事情,即直接从表中提取数据而无需进行转换。
Here 是我发布的问题。如果我被允许将我的代码发布到一个分支,我会在这里发布一个跟进以确保完整性。
Oracle ODBC 驱动程序版本 11.2.0.1.0 表示支持预取 LONG RAW 数据类型,这是真的。
需要注意的是,从技术上讲,LONG RAW 的大小可以达到 2GB。我必须在代码中设置 10MB 的最大硬性大小,这足以满足我的使用需求,至少到目前为止。这可能是发送到连接的变量。
这个修复现在有点偏离原始主题,但它可能对其他人有用。
【问题讨论】:
标签: oracle type-conversion blob