zoukankan      html  css  js  c++  java
  • Oracle导出用户ddl语句 存储过程、触发器、函数、包、表、索引

    1. 生成sql脚本,SQL plus执行,类型名称、用户名需大写

    SET PAGESIZE 0
    SET TRIMSPOOL ON
    SET LINESIZE 10000
    SET LONG 90000
    SET FEEDBACK OFF
    SET FEED OFF
    SET ECHO OFF
    -- 指定文件路径,文件夹不能为空
    SPOOL E:ytzzcopyczbdc_dpschema_bdc_workflow.sql
    SELECT CASE
    WHEN U.OBJECT_TYPE IN ('PROCEDURE', 'FUNCTION' , 'PACKAGE', 'TRIGGER') THEN
    DBMS_METADATA.GET_DDL(U.OBJECT_TYPE, U.OBJECT_NAME, U.OWNER) ||
    CHR(10) || '/'
    ELSE
    DBMS_METADATA.GET_DDL(U.OBJECT_TYPE, U.OBJECT_NAME, U.OWNER)||
    CHR(10) || ';'
    END AS SCOTT_DDL
    FROM DBA_OBJECTS U
    WHERE U.OBJECT_TYPE IN ('PROCEDURE', 'FUNCTION', 'PACKAGE', 'TRIGGER')
    AND U.OWNER='TEST';
    SPOOL OFF;

     ps: 

    --去掉表的存储参数(例如,INITIAL、NEXT、FREELISTS等参数),那么可以使用DBMS_METADATA包中的函数SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'STORAGE',FALSE)来完成
    EXEC DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'STORAGE',FALSE);

    2. 查询

    -- 根据用户对象名和对象类型,查找对面内容 存储过程、函数、触发器 -- PROCEDURE TRIGGER FUNCTION PACKAGE
    SELECT DBMS_METADATA.GET_DDL('PROCEDURE', U.OBJECT_NAME,'BDCK')

    -- 任意用户登录都可以
    from dba_objects U
    where u.OBJECT_TYPE in ('PROCEDURE') and u.owner = 'BDCK'
    ;

    --查触发器内容 -- PROCEDURE TRIGGER FUNCTION
    SELECT DBMS_METADATA.GET_DDL('PROCEDURE', U.OBJECT_NAME)

    -- 当前登录用户
    FROM USER_OBJECTS U
    WHERE OBJECT_TYPE = 'FUNCTION'
    ;

    函数使用参数说明

    SQL> DESC DBMS_METADATA.GET_DDL
    PARAMETER TYPE MODE DEFAULT?
    ----------- -------- ---- --------
    (RESULT) CLOB
    OBJECT_TYPE VARCHAR2 IN
    NAME VARCHAR2 IN
    SCHEMA VARCHAR2 IN Y
    VERSION VARCHAR2 IN Y
    MODEL VARCHAR2 IN Y
    TRANSFORM VARCHAR2 IN Y

    补充 把clob转换为字符串

     SELECT dbms_lob.substr(DBMS_METADATA.GET_DDL('FUNCTION', 'FUNC_NAME', 'SCHEMA')) as 内容 FROM dual;

  • 相关阅读:
    Linux服务下,设置开机自启动服务
    [知识分享] 实用且具有参考意义的博客网站
    [AutoHotKey] 自定义配置快捷键
    [driver] probe调用的时机
    [vscode] 常用快捷键
    [Linux] 双系统下linux自动挂载windows下的逻辑分区
    [Linux] manjaro中文输入法配置
    [Linux] gnome桌面顶栏透明效果
    [Linux] manjaro窗口按钮异常
    博客园简约主题设置
  • 原文地址:https://www.cnblogs.com/shihx/p/13509737.html
Copyright © 2011-2022 走看看