打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
表结构的迁移

在oracle中,将表结构迁移其实有多种方法:

1、exp导出,且row=n

2、利用DBMS_METADATA.GET_DDL,利用该方法可以将当初的建表语句导出成文本,且建表语句包含storage。

set pagesize 0
set long 90000
set feedback off
set echo off
SELECT DBMS_METADATA.GET_DDL('TABLE', U.TABLE_NAME) FROM USER_TABLES U;
SELECT DBMS_METADATA.GET_DDL('INDEX', U.INDEX_NAME) FROM USER_INDEXES U;
SELECT DBMS_METADATA.GET_DDL('VIEW', U.VIEW_NAME) FROM User_Views U;

3、利用user_tables and user_tab_columns导出,优点是不涉及到storage,仅仅导出建表的create语句。

SELECT decode(ta.column_id,
              
tb.mincol_id,
              
'CREATE TABLE ' || ta.table_name || chr(10) || '(' || chr(10),
              
'') || rpad(column_name, 40) || data_type ||
      
decode(data_type,
              
'NUMBER',
              
decode(sign(data_precision),
                    
1,
                    
'(' || data_precision || ',' || data_scale || ')',
                    
''),
              
decode(sign(instr('DATE,LONG,LONG RAW,BLOB,CLOB,FLOAT,UNDEFINED,MLSLABEL,',
                                
data_type || ',')),
                    
1,
                    
'',
                    
'(' || data_length || ')')) ||
      
decode(ta.column_id, tb.maxcol_id, chr(10) || ');', ',')
 
FROM user_tab_columns ta,
      
(SELECT table_name,
              
MAX(column_id) maxcol_id,
              
MIN(column_id) mincol_id
          
FROM user_tab_columns
        
GROUP BY table_name) tb,
      
user_tables tc
 
WHERE ta.table_name = tb.table_name
  
AND ta.table_name = tc.table_name
 
ORDER BY ta.table_name, ta.column_id;
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Oracle导出SQL脚本的spool实现
Oracle中如何导出存储过程、函数、包和触发器的定义语句?如何导出表的结构?如何导出索引的创建语句?
在高并发、高负载的情况下,如何给表添加字段并设置DEFAULT值?
mybatis与DDL的坑
MySQL 8.0 数据字典表
jpa下hibernate的ddl-auto的各种属性
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服