项目需要将DB2中的表导入oracle。用的Kettle,但是在检索db2中的表时都是这样的格式"DB2USER.AGENT”(图一),造成导入oracle时的表名为DB2USER.AGENT,在oracle访问时提示"表或视图不存在"(图三)。 在导入时将文件修改去掉DB2USER.AGENT中的DB2USER(图2下面的sql),导入oracle时就能访问但是,数据导不进去。想问下如何解决呢? 我觉得主要是在配置Kettle的时候如果不带DB2USER模式名就应该能成功,但不知道怎么去设置,请教高手了。 或者有其他的好的BD2转oracle的办法吗? 

解决方案 »

  1.   

    发现了 是由于在create table 时带了引号,所以oracle认为是有特殊字符或大小写的表名,在select时带引号就可以了
    但是问题还没解决呀。
    例如 CREATE TABLE "DB2USER.AGENT" 为 CREATE TABLE "AGENT"呢?尝试修改里面的TRANSTABLE(好像是这个名字)但是没起作用。
      

  2.   

    思路:将表导过来 然后在ORACLE里 通过存储过程将表明修改 
    遇到问题:CREATE TABLE "DB2USER.AGENT" 有些表名超长。而且不是少数。。
    思路:在kettle设置模板的时候就不带DB2USER。。不过没弄明白。。g