用exp导出,导出表数据选no,然后用文本编辑器将它打开,可以得到近似于表结构的文本.

解决方案 »

  1.   

    这种外围问题使用工具最方便
    pl/sql develope
      

  2.   

    这种问题使用工具最方便
    pl/sql developer
      

  3.   

    请问exp能不能在客户端完成该操作?
      

  4.   

    我自己经常用的一段代码: 
    DECLARE 
       V_BUT                INT; 
       V_TABLE              VARCHAR(30); 
      CURSOR C_TABLE IS  
       SELECT TABLE_NAME 
        FROM USER_TABLES 
        WHERE TABLE_NAME = UPPER(V_TABLE); 
    BEGIN 
        
       V_TABLE := NAME_IN('BB.TABLE_NAME'); 
       IF V_TABLE IS NOT NULL THEN 
             OPEN C_TABLE; 
             FETCH C_TABLE INTO V_TABLE; 
             IF C_TABLE%NOTFOUND THEN 
                MESSAGE('This table is not exist!'); 
                RAISE FORM_TRIGGER_FAILURE; 
             END IF; 
             CLOSE C_TABLE; 
      END IF; 
       IF NAME_IN('BB.TABLE_NAME') IS NULL THEN 
          SET_ALERT_PROPERTY('ALERT1', ALERT_MESSAGE_TEXT,'You want get all table structure,'|| 
                                                           'Are you sure ?'); 
          V_BUT := SHOW_ALERT('ALERT1'); 
          IF V_BUT = ALERT_BUTTON1 THEN 
             TABLE_STRUCTURE(NULL,NAME_IN('BB.FILE_PATH'),NVL(NAME_IN('BB.FILE_NAME'),'N')); 
          END IF; 
       ELSE 
          TABLE_STRUCTURE(NAME_IN('BB.TABLE_NAME'), 
                          NAME_IN('BB.FILE_PATH'), 
                          NVL(NAME_IN('BB.FILE_NAME'),'N')); 
       END IF; 
        
    END;
      

  5.   

    如下操作:
    1、exp USER/pswd file=a.dmp log=loga.txt
    2、imp USER/pswd file=a.dmp show=y log=logb.txt打开logb.txt,里面可以看到DDL语句
      

  6.   

    pl/sql developer
    或用sql plus 的spool 就是很慢,呵呵
      

  7.   

    exp userid = user/password full=y    
        imp userid = user/password full = y indexfile = t.sql   看t.sql