ORACLE导出文件(一)---导出表结构SQL文件
来源:互联网 发布:centos 6.9 发布日期 编辑:程序博客网 时间:2024/06/01 15:16
ORACLE 导出表结构方式较多,最方便的可能就属PL/SQL了,其次就是用EXP命令了。但是这些往往有时候达不到自己的需求要的效果,或者达到需求了,也较复杂些,例如EXP导出和版本有关系,就是一个令人头疼的问题。例如这次的项目就遇到一个需求:把甲数据库上SCHEMA下指定的几个表,迁移到乙数据库。两个库的表空间不一致,用户名不一致,并且版本也不一致,数据甲是10G,数据乙是9i。
经过对比,发现一个比较简单的方法,就是dbms_metadata.get_ddl()方式。
select dbms_metadata.get_ddl('TABLE','ZB_DEV_M_CARD_02_RPT','ZB') from dual; 表示导出ZB用户名下的实体表ZB_DEV_M_CARD_02_RPT 。
select dbms_metadata.get_ddl('VIEW','ZB_DEV_M_CARD_02_RPT_VIEW,'ZB') from dual ; 表示ZB用户下视图ZB_DEV_M_CARD_02_RPT_VIEW。
select dbms_metadata.get_ddl('INDEX','IND_ZB_DEV_M_CARD_02_RPT,'ZB') from dual ; 表示ZB用户下索引IND_ZB_DEV_M_CARD_02_RPT。
相信以上脚本已经可以满足文章开始的需求。在配合ORACLE 的SPOOL就可以导出一个SQL文件,这样里面的东西你就可以随便编译了,例如指定表空间。
SPOOL脚本如下:
set pagesize 0
set long 90000
set feedback off
set echo off
spool F:\DEPT.sql
select dbms_metadata.get_ddl('TABLE','ZB_DEV_M_CARD_02_RPT','ZB') from dual
select dbms_metadata.get_ddl('VIEW','ZB_DEV_M_CARD_02_RPT_VIEW,'ZB') from dual ;
select dbms_metadata.get_ddl('INDEX','IND_ZB_DEV_M_CARD_02_RPT,'ZB') from dual;
spool off;
以下扩展学习补充:
获取一个SCHEMA下的所有建表、视图和建索引的语法,以scott为例:
SELECT DBMS_METADATA.GET_DDL('TABLE',A.table_name) FROM USER_TABLES A;
SELECT DBMS_METADATA.GET_DDL('VIEW',A.VIEW_name) FROM USER_VIEWS A;
SELECT DBMS_METADATA.GET_DDL('INDEX',A.index_name) FROM USER_INDEXES A;
获取某个SCHEMA的全部过程的语法
select DBMS_METADATA.GET_DDL('PROCEDURE',A.object_name) from user_objects A where object_type = 'PROCEDURE';
当object_type='FUNCTION' 就是获取某个SCHEMA的建全部函数的语法
重点说明下:DBMS_METADATA.GET_DDL()包()内的参数都要大写。
如果你遇到以下错误:那就需要重点检查下()的参数是否有小写。
ERROR:
ORA-31600: invalid input value table for parameter OBJECT_TYPE in function GET_DDL
ORA-06512: at "SYS.DBMS_METADATA", line 2682
ORA-06512: at "SYS.DBMS_METADATA", line 2733
ORA-06512: at "SYS.DBMS_METADATA", line 4333
ORA-06512: at line 1
- ORACLE导出文件(一)---导出表结构SQL文件
- oracle导出表结构到sql文件
- Oracle--oracle导出表结构到sql文件 ,数据库的导入导出CMD命令exp和imp、使用数据泵导入(impdp)和导出(expdp)
- PL/SQL 表结构(不要表数据,只要表结构)导出成一个.sql文件///怎么将oracle的sql文件转换成mysql的sql文件)
- sql导出文件,导出xml
- sqlserver2008导出表数据和表结构sql文件
- sqlserver2008导出表数据和表结构sql文件
- sqlserver2008导出表数据和表结构sql文件
- oracle 导出 用户对象【sql文件】
- ORACLE导出存储过程SQL至文件
- Oracle导出文件
- Oracle文件的导出
- oracle 导出csv文件
- 文件导入导出SQL
- Erwin导出sql文件
- mysql导出sql文件
- Erwin导出sql文件
- Mysql导出sql文件
- 双色球随机算法
- 和机器学习和计算机视觉相关的数学
- 看了一个人写的软件随想录
- 中医推荐!民间养生经典六法
- Linux程序前后台问题
- ORACLE导出文件(一)---导出表结构SQL文件
- 【练习01】 简单题(1)1002
- JDK自带工具jstack使用简析
- Spring MVC 教程,快速入门,深入分析和注解介绍
- 矩阵内的随机点
- C#中[STAThread]的作用和c#入门的问题
- do...while(0)的妙用
- 用js实现页面登录重用(一个页面实现两种类型的登录)
- AF_DataRequest详解