我覺得沒有多大的必要。
可以導出為dmp文件。

解决方案 »

  1.   

    eg:
    sql>set pagesize 0
    sql>set linesize 200
    sql>spool d;\temp\test.dat
    sql>select * from table1;
    sql>select * from table2;
    ...
    sql>select * from tableN;
    sql>spool off
      

  2.   

    补充一点:
       我是需要生成的是windows INI文件的数据格式。具体内容如下:文件数据内容:
    [Basic Info]
    FileDate=文件产生日期
    AffectedRows =本次文件中包含记分数据的驾驶员总数[999]  // 自动序列号(从1开始)
    字段1=
    字段2=
    字段3=
    字段4=
    字段5=
    字段6=
    字段7=
    字段8=说明:
    1、 自动序列号(999)由产生该文件的上级系统自动产生和维护,要求序列号连续;
      

  3.   

    那你只能用动态SQL来构造了,
    这样才能实现你的需求。
      

  4.   

    利用动态SQL可以构造吗,能不能举个简单的例子啊
      

  5.   

    我顶~~~~~~新手说:可不可以导出成xml,然后利用xmldom生成ini文档啊?
      

  6.   

    首先
    [Basic Info]
    FileDate=文件产生日期
    AffectedRows =本次文件中包含记分数据的驾驶员总数
    可以由你的程序做出来,
    下面是一个例子
    PROCEDURE test
    IS
       ret INT;
    nSQL NUMBER;
    sqlcmd  VARCHAR2(512);
    column_name VARCHAR2(60);
    table_name VARCHAR2(60);
    begin  
    nSQL := DBMS_SQL.OPEN_CURSOR;
    sqlcmd := 'SELECT TABLE_NAME,COLUMN_NAME FROM USER_TAB_COLUMNS
                     WHERE  TABLE_NAME ='table_name' AND  TABLE_NAME NOT IN 
                     ( SELECT VIEW_NAME FROM USER_VIEWS )
                     ORDER BY LENGTH( TABLE_NAME ) DESC';
     DBMS_SQL.PARSE( nSQL, sqlcmd, DBMS_SQL.v7 );
     DBMS_SQL.DEFINE_COLUMN( nSQL, 1, TABLE_NAME , 60);
                       DBMS_SQL.DEFINE_COLUMN( nSQL, 2, COLUMN_NAME , 60);
         ret := DBMS_SQL.EXECUTE( nSQL ) ;
     LOOP
       IF DBMS_SQL.FETCH_ROWS( nSQL ) = 0 THEN
       EXIT;
       END IF;
       DBMS_SQL.COLUMN_VALUE( nSQL, 1, table_name ) ;  END LOOP;
          DBMS_SQL.CLOSE_CURSOR( nSQL );
      EXCEPTION
    WHEN OTHERS THEN
    DBMS_SQL.CLOSE_CURSOR( nSQL ); RAISE_APPLICATION_ERROR(-20002,'error');
    end test;
    这是得到数据库一个表结构的动态SQL,根据你的需求,你自己修改下,
    因为我也不是很明白你需要达到什么结果。
      

  7.   

    的确,好像用XML可以达成这种效果,不过我不清楚XML,悲哀啊