添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
鬼畜的登山鞋  ·  Python ...·  1 年前    · 
爱运动的奔马  ·  vbscript ...·  1 年前    · 
create table newtable as select * from oldtable
Oracle 中,如何能够快速的复制一个表的结构,包括字段定义、默认值、约束、主键、索引等。
表tab_xxx包含N个字段,某些字段是非空的,某些字段是有默认值的,且有一个索引i_tab_xxx
现在想创建表tab_yyy和tab_zzz,需要这两个表与tab_xxx有相同的字段定义以及各种约束条件,且他们也有相似的索引i_tab_yyy和i_tab_zzz。
写存储过程到各个字典表中取出表的定义信息实在费事, oracle 有没有提供相似功能的package?
或者各位大侠有没有现成的东西分享?
--create or replace directory DATA_PUMP_DIR as '/home/oracle/admin/RT/dpdump';
--grant read,write on directory DATA_PUMP_DIR to public;
procedure sp_export_ddl_table(p_table_name VARCHAR2,p_file_name VARCHAR2)
v_file          UTL_FILE.file_type;
v_buffer        VARCHAR2(32767);
v_amount        BINARY_INTEGER := 1024;
v_pos           INTEGER :=1;
v_clob          CLOB;
v_clob_length   INTEGER;
BEGIN
SELECT dbms_metadata.get_ddl(upper('table'),p_table_name)||';'
INTO v_clob
FROM dual;
v_clob_length := dbms_lob.getlength(v_clob);
v_file := UTL_FILE.FOPEN('DATA_PUMP_DIR',p_file_name||'.sql','a',32767);
WHILE v_pos < v_clob_length LOOP
dbms_lob.read(v_clob,v_amount,v_pos,v_buffer);
UTL_FILE.put(v_file,v_buffer);
v_pos := v_pos + v_amount;
END LOOP;
UTL_FILE.FCLOSE(v_file);
END sp_export_ddl_table;
--将一个用户下所有表的定义SQL输出到文件中
procedure sp_export_ddl_user (p_owner_name VARCHAR2 DEFAULT USER)
BEGIN
FOR rec in (select table_name from user_tables ) LOOP
sp_export_ddl_table(rec.table_name,p_owner_name);
END LOOP;

广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员