1、我现在有一个oracle数据库,我想把oracle库一个新闻表(NewsTB)信息导出sql文件,然后拿到另一台服务器(sql server2005)上去执行。但是long数据导不出。
现在2台服务网络不通的。一台orcle 一台sql server 服务器,如果将oracle数据表导到sql server 中

解决方案 »

  1.   

    long数据 的内容会超过4000么
      

  2.   

    会的,long在放新闻信息,这个肯定会超出.
      

  3.   


    如果不出,那如何写,帮一下忙超过了4000,我也不知如何处理,但是如果不超过4000,可以当做varchar处理。包含long的字段,要写出为.sql文件,我只想到了utl_file,而且方法太死了,仅供娱乐吧。create or replace directory DIR_TEST as 'D:\';
    /
    create table b(b1 number,b2  varchar2(10),b3 long,b4 date);
    insert into b values(1,'b1','ccccccccccc1',sysdate+1);
    insert into b values(2,'b2','ccccccccccc2',sysdate+2);
    insert into b values(3,'b3','ccccccccccc3',sysdate+3);
    insert into b values(4,'b4','ccccccccccc4',sysdate+4);
    /
    select * from b;
    /
    declare
      v        varchar2(4000);
      v1       varchar2(4000);
      v2       varchar2(4000);
      v3       varchar2(4000);
      out_file utl_file.file_type; --定义一个文件类型
    begin  out_file := utl_file.fopen('DIR_TEST', 'insert.sql', 'W');  --输出insert脚本到文件
      for w in (select * from b) loop
        --处理字符型
        v1 := '''' || w.b2 || '''';
        v2 := '''' || w.b3 || '''';
        --处理日期型
        v3 := 'to_date(''' || to_char(w.b4, 'yyyymmdd hh24:mi:ss') ||
              ''',''yyyymmdd hh24:mi:ss'')';
        v  := 'insert into b values(' ||w.b1||','|| v1 || ',' || v2 || ',' || v3 ||');';
        utl_file.put_line(out_file, v);
      end loop;  --关闭文件流
      utl_file.fflush(out_file);
      utl_file.fclose(out_file);
    end;
      

  4.   

    你到网上搜索一下oracle的long或者blob字段数据导出,或许你可以借鉴一下。
      

  5.   


    如果不出,那如何写,帮一下忙超过了4000,我也不知如何处理,但是如果不超过4000,可以当做varchar处理。包含long的字段,要写出为.sql文件,我只想到了utl_file,而且方法太死了,仅供娱乐吧。create or replace directory DIR_TEST as 'D:\';
    /
    create table b(b1 number,b2  varchar2(10),b3 long,b4 date);
    insert into b values(1,'b1','ccccccccccc1',sysdate+1);
    insert into b values(2,'b2','ccccccccccc2',sysdate+2);
    insert into b values(3,'b3','ccccccccccc3',sysdate+3);
    insert into b values(4,'b4','ccccccccccc4',sysdate+4);
    /
    select * from b;
    /
    declare
      v        varchar2(4000);
      v1       varchar2(4000);
      v2       varchar2(4000);
      v3       varchar2(4000);
      out_file utl_file.file_type; --定义一个文件类型
    begin  out_file := utl_file.fopen('DIR_TEST', 'insert.sql', 'W');  --输出insert脚本到文件
      for w in (select * from b) loop
        --处理字符型
        v1 := '''' || w.b2 || '''';
        v2 := '''' || w.b3 || '''';
        --处理日期型
        v3 := 'to_date(''' || to_char(w.b4, 'yyyymmdd hh24:mi:ss') ||
              ''',''yyyymmdd hh24:mi:ss'')';
        v  := 'insert into b values(' ||w.b1||','|| v1 || ',' || v2 || ',' || v3 ||');';
        utl_file.put_line(out_file, v);
      end loop;  --关闭文件流
      utl_file.fflush(out_file);
      utl_file.fclose(out_file);
    end;
    请问 你用的什么软件编辑效果是这样的
      

  6.   


    如果不出,那如何写,帮一下忙超过了4000,我也不知如何处理,但是如果不超过4000,可以当做varchar处理。包含long的字段,要写出为.sql文件,我只想到了utl_file,而且方法太死了,仅供娱乐吧。create or replace directory DIR_TEST as 'D:\';
    /
    create table b(b1 number,b2  varchar2(10),b3 long,b4 date);
    insert into b values(1,'b1','ccccccccccc1',sysdate+1);
    insert into b values(2,'b2','ccccccccccc2',sysdate+2);
    insert into b values(3,'b3','ccccccccccc3',sysdate+3);
    insert into b values(4,'b4','ccccccccccc4',sysdate+4);
    /
    select * from b;
    /
    declare
      v        varchar2(4000);
      v1       varchar2(4000);
      v2       varchar2(4000);
      v3       varchar2(4000);
      out_file utl_file.file_type; --定义一个文件类型
    begin  out_file := utl_file.fopen('DIR_TEST', 'insert.sql', 'W');  --输出insert脚本到文件
      for w in (select * from b) loop
        --处理字符型
        v1 := '''' || w.b2 || '''';
        v2 := '''' || w.b3 || '''';
        --处理日期型
        v3 := 'to_date(''' || to_char(w.b4, 'yyyymmdd hh24:mi:ss') ||
              ''',''yyyymmdd hh24:mi:ss'')';
        v  := 'insert into b values(' ||w.b1||','|| v1 || ',' || v2 || ',' || v3 ||');';
        utl_file.put_line(out_file, v);
      end loop;  --关闭文件流
      utl_file.fflush(out_file);
      utl_file.fclose(out_file);
    end;
    请问 你用的什么软件编辑效果是这样的发表情的左边这个"代码"按钮 ,里面选择SQL