本人小虾
写一个函数,返回生成的建表语句,传入参数为用户名,表名这个是不是一定要拼串才行?有没有一张系统表专门纪录建表的语句的?

解决方案 »

  1.   


    SQL> select distinct type from user_source;TYPE
    ------------
    PROCEDURE
    PACKAGE
    PACKAGE BODY
    TYPE BODY
    TRIGGER
    FUNCTION
    TYPE
    貌似数据字典里面只有这几个有代码..建好的表 是被分开存储在数据字典把。。被肢体了..
      

  2.   

    你可以试试 
    desc 表名;orselect * from user_tables where table_name='XXX';
      

  3.   

    好像没有专门记录建表的语句,不像视图、存储过程、函数等对象那样!不过也不用去拼,oracle有自己的包可以方便获取:获取单表ddl:select dbms_metadata.get_ddl('TABLE','T4','TEST') From dual;获取某用户低下所有表的ddl:SELECT DBMS_METADATA.GET_DDL('TABLE',u.table_name)
      FROM USER_TABLES u;
      

  4.   

    get_ddl 的参数是“数据库对象类型,对象名称,schema名”
      

  5.   

    貌似没有这样的系统表--专门来记录建表语句。你可以自己建张表,然后insert 里一些建表语句,以后调用~O(∩_∩)O
      

  6.   

    你返回的是字符型的,肯定的拼接
    --查看已有的表的定义
    set long 1000
    select dbms_metadata.get_ddl('TABLE','TABLENAME','USERNAME') FROM DUAL