当然如果能把表结构也导出为SQL语句那就更好了

解决方案 »

  1.   

    set pagesize 0;
    set linesize 100;
    spool c:\data.sql
    select 'insert into tblinfo values
    ('''||FID||''','''||FNAME||''','||nvl(FAGE,0)');'
    from tblinfo;  
    spool off;
      

  2.   

    bzszp(SongZip) 的方法不错误,但生成的c:\data.sql文件会产生很多的空格等,效果不好。最好的办法是利用pb连接,直接写select * from 表名。然后另存为(格式选择sql,文件名为新的表名就可以了)
      

  3.   

    还是pl/sql deveoper工具更方便一些。
      

  4.   

    to bzszp(SongZip) :
       >>set pagesize 0;
       >>set linesize 100;
       >>spool c:\data.sql
       >>select 'insert into tblinfo values
       >>('''||FID||''','''||FNAME||''','||nvl(FAGE,0)');'
       >>from tblinfo;  
       >>spool off;
    假设我事先只知道表名,不知道具体有哪些字段呢?
    我想要的就是那些字段的名称是动态产生的。
      

  5.   

    其实TOAD和PL/SQL Developer都有这样的功能
    如果你一定要用程序实现,我写了一个PERL程序,供参考提供一Perl程序 record2insert.pl
    实施步骤
    1、先到www.activeperl.com去下载一个activeperl,免费的
    2、安装perl
    3、到\Perl\bin下面执行 ppm
    4、出现PPM提示符如下
       D:\Perl\bin>PPM
       PPM interactive shell (2.1.6) - type 'help' for available commands.
       PPM>
    5、在PPM提示符下执行如下命令,安装数据库连接模块DBI,DBD
       PPM>install dbi
       PPM>install dbd-oracle
    6、执行下面的perl程序即可,其中用户名和密码,以及连接字符串自己改改
       再命令窗口直接键入如下命令格式,该程序无需编译,祝你好运
       record2insert.pl >输出文件名.sql
    7、该程序不支持RAW,LONG和LOB类型的字段
    #!/usr/bin/perl -w
    #author atgc
    use DBI;
    $dbh  = DBI->connect("DBI:Oracle:连接名",'用户名','密码');
    $sql  = "select table_name from user_tables";
    $sth1 = $dbh->prepare($sql);
    $sth1->execute();
    while($table_name = $sth1->fetchrow)
    {
    $sql  = "select * from $table_name";
    $sth2 = $dbh->prepare($sql);
    $sth2->execute();
    while(@field = $sth2->fetchrow)
    {
    $value="";
    foreach $ele(@field){$ele.="";$ele=~s/'/''/;$value.=$ele."','";}
    $value=~s/\,\'$//;
    print "insert into $table_name values ('"."$value\);\n";
    }
    print "\n";
    $sth2->finish();
    }
    $sth1->finish();
    $dbh->disconnect();
      

  6.   

    那就比较复杂了
    写一个pl/sql块,从col里面找到表的每个列,判断列的类型
    组合出不同的语句。
    生成select 脚本。
      

  7.   

    to bzszp(SongZip):
      >>那就比较复杂了
      >>写一个pl/sql块,从col里面找到表的每个列,判断列的类型
      >>组合出不同的语句。
      >>生成select 脚本。
    ===================
    呵呵
    就是比较复杂(对我来说是很复杂),我才到这里请教高手嘛:)
    其实简单的我问之前就已经写好了:)
      

  8.   

    用PL/SQL developer可以实现.不过表不能有 lob 型的字段。