`
MyDicta
  • 浏览: 19152 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Oracle spool 元数据(过程、函数、包、类型)导出

 
阅读更多

因版本控制不规范,项目中运营同事在部署前需手动备份数据库过程、函数代码,以支持失败时回滚; 这里写了个小程序,以简化备份操作:(只针对 Oracle)


一共分两个脚本:exp.bat  和 exp.conf(执行前,修改 数据库 连接信息和备份内容即可)

 

 

exp.bat

 

sqlplus dc_data/dc_data@crs116 @c:\exp\exp.conf
pause
 

其中  @c:\exp\exp.conf 表示 查找 exp.conf 配置文件

 

exp.conf

 

set trimspool on
set linesize 2000
set pagesize 0
set newpage 1
set heading off
set term off
set long 1000000
set longc 1000000

spool  .\P_GROUP_VARCHAR_APPEND.PRC
SELECT DBMS_METADATA.GET_DDL('PROCEDURE','P_GROUP_VARCHAR_APPEND', 'DC_DATA') AS TEXT  FROM DUAL;
spool off

spool  .\F_WORKDATE.FUN
SELECT DBMS_METADATA.GET_DDL('FUNCTION', 'F_WORKDATE', 'DC_DATA') AS TEXT  FROM DUAL;
spool off

spool  .\PKG_UNITY.PKG
SELECT DBMS_METADATA.GET_DDL('PACKAGE', 'PKG_UNITY', 'DC_ETL') AS TEXT FROM DUAL;
spool off

exit

 

  文中 分别将sql语句的结果生成到相应文件; 

   .\P_GROUP_VARCHAR_APPEND.PRC    表示生成的文件名和路径(这里是相对路径)


  set long 1000000      因 DBMS_METADATA.GET_DDL() 函数返回CLOB,默认只输出前80个字符,这里进行调大

  set longc 1000000   防止CLOB写到文件里时被截断而换行   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0
0
分享到:
评论

相关推荐

    windows和unix下通过spool导出oracle数据(导成insert语句)

    本文将详细讲解如何在Windows和Unix环境下利用SQL*Plus的`spool`命令来导出Oracle数据库中的数据,并将其转换为INSERT语句或纯文本格式。 `spool`是SQL*Plus的一个内置命令,它允许用户将SQL*Plus会话的输出重定向...

    【数据泵】EXPDP导出表结构(真实案例).pdf

    - 使用数据泵工具可以导出和导入表结构、索引、函数、包和存储过程等元数据信息。 - 导出(EXPDP)和导入(IMPDP)操作是基于参数文件进行的,参数文件中可以指定需要导出或导入的数据类型、对象和过滤条件等。 2...

    oracle数据库对象导出脚本

    接下来的部分使用了Oracle提供的`DBMS_METADATA`包来进行元数据转换和提取。`DBMS_METADATA`包主要用于获取数据库对象的定义,并可以将这些定义转换成SQL脚本的形式。脚本中包含了多个`EXEC DBMS_METADATA.set_...

    Oracle数据库中业务数据文本导出.pdf

    在使用UTL_FILE包进行数据导出时,开发者需要编写PL/SQL代码,通过游标遍历数据,然后利用UTL_FILE包的函数(如`UTL_FILE.PUT_LINE`)将每一行数据写入文本文件。文件操作完成后,别忘了关闭打开的文件。这种方法...

    从 Oracle数据库中导出SQL脚本.doc

    从 Oracle 数据库中导出 SQL 脚本 Oracle 数据库是一个功能强大...从 Oracle 数据库中导出 SQL 脚本可以使用 `dbms_metadata.get_ddl` 函数来获取指定对象的 DDL 定义,然后使用 `spool` 命令将输出结果写入到文件中。

    oracle日积月累

    数据字典是Oracle系统存储元数据的地方,包含关于数据库对象的信息。用户可以通过查询视图如DBA_OBJECTS, USER_TABLES, ALL_TAB_COLUMNS等了解数据库的状态和结构。 这些笔记内容覆盖了Oracle数据库的诸多方面,...

    韩顺平玩转oracle视频的文档

    - **转换函数**:如`TO_CHAR`、`TO_DATE`等数据类型转换。 - **系统函数**:如`USERENV`等获取系统信息。 ### 数据库管理,表的逻辑备份与恢复 这部分讲述了Oracle数据库的管理策略,包括逻辑备份与恢复的操作。 -...

    Oracle_Database_11g完全参考手册.part3/3

    第35章 过程、函数与程序包 第36章 使用本地动态SQL和DBMS_SQL 第37章 PL/SQL调整 第Ⅴ部分 对象关系数据库 第38章 实现对象类型、对象视图和方法 第39章 收集器(嵌套表和可变数组) 第40章 使用大对象 第41章 ...

    Oracle_Database_11g完全参考手册.part2/3

    第35章 过程、函数与程序包 第36章 使用本地动态SQL和DBMS_SQL 第37章 PL/SQL调整 第Ⅴ部分 对象关系数据库 第38章 实现对象类型、对象视图和方法 第39章 收集器(嵌套表和可变数组) 第40章 使用大对象 第41章 ...

    tarena根笔记oracle

    - SPOOL命令:可以将SQLPLUS会话的输出重定向到文件,方便日志记录和数据导出,例如`spool filename`。 这些是Oracle数据库学习的基础内容,掌握这些知识对于理解和操作Oracle数据库至关重要。随着深入学习,还会...

    oracle使用sql脚本生成csv文件案例学习

    在Oracle数据库环境中,有时我们需要将数据导出为CSV(逗号分隔值)格式以便进行数据分析、传输或在其他系统中使用。Oracle SQL提供了一种简单的方法,通过SQL*Plus命令来生成CSV文件。以下是对标题和描述中提及的...

    oracle SQL讲义

    2. **数据类型**:在Oracle中,数据类型定义了列可以存储的数据类型。 - **VARCHAR2(size)**:可变长度的字符串,最多可存储指定的size个字符。 - **CHAR(size)**:固定长度的字符串,即使实际存储的数据小于指定...

    oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64

    - **导出导入数据**:通过SQL*Plus的spool功能,可以将查询结果导出为文本文件,或从文件导入数据。 总之,Oracle Instant Client 11.2带有SQL*Plus的版本是开发人员和DBA在没有完整Oracle数据库安装的情况下进行...

    Oracle8i_9i数据库基础

    §1.7 ORACLE数据类型 38 §1.8 SQL 语句基础 44 §1.8.1 SQL语句所用符号 44 §1.8.2 简单select 查询 45 §1.9 伪列及伪表 46 §1.10 使用SQL Worksheet工作 46 第二章 查询基础 50 §2.1 SELECT语句 50 §2.2 SQL...

    Oracle9i管理工具.pptx

    移植工具是 Oracle 数据库的数据移植工具,提供了多种数据移植功能,包括数据导入、导出、同步等。 网络管理 网络管理是 Oracle 数据库的网络管理工具,提供了多种网络管理功能,包括网络配置、安全管理、性能监控...

Global site tag (gtag.js) - Google Analytics