首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >非法使用长数据类型00997。00000 -“非法使用长数据类型”

非法使用长数据类型00997。00000 -“非法使用长数据类型”
EN

Stack Overflow用户
提问于 2016-06-08 09:36:17
回答 1查看 2.4K关注 0票数 0

如果我有两个结构相同的表--一个在informix中,另一个在oracle db.and中--我想将照片从informix迁移到oracle,所以我使用oracle网关来实现这个迁移,但是它失败了,我得到了以下错误:

SQL错误: ORA-00997:非法使用长数据类型00997。00000 -“非法使用长数据类型”

我的问题是:

代码语言:javascript
复制
INSERT INTO EMPPHOTO (EMP_NUM,EMP_PIC,THUMB)
SELECT "emp_num","emp_pic","thumb" FROM "empmaster1pics"@GMR;

其中EMPPHOTO (甲骨文表)和EMP_PIC --->BLOB

empmaster1pics (informix )和emp_pic --->Byte

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-08 11:35:02

您正在执行从Informix数据类型到Oracle的隐式转换。但是带着一张遥控器,这是显式等价的。

您应该能够使用PL/SQL游标来实现这一点,将查询和insert分隔开来:

代码语言:javascript
复制
begin
  for rec in (
    select "emp_num", "emp_pic", "thumb"
    from "empmaster1pics"@GMR
  )
  loop
    insert into empphoto (emp_num, emp_pic, thumb)
    values (rec."emp_num", rec."emp_pic", rec."thumb");
  end loop;
end;
/

我没有要验证的Informix数据库,但它使用的是指向Oracle数据库的链接和带有long raw列的表,后者与您的byte列最接近,与原始代码获得相同的ORA-00997。(但表中只能有一个long raw列,所以我只能使用emp_picthumb进行测试,而不是两者都进行测试)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37698716

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档