最近由于项目原因需要导出系统中有所的客户化程序包\视图\触发器等,试了不少办法,感觉使用dbms_metadata来导入ddl是最为方便的,代码中为了防止utl_file输出溢出采用了raw转换,如果大家觉得还有更好的方法也可以提出来一起讨论.
首先需要在服务器上创建好需要导出文件的文件路径,并在数据库中创建成directory并授权给apps用户(需要使用到system用户).
因为本次项目的所有客户化程序都是按照规范CUX或者是XXD开头的,可以根据自己的实际需求修改查询范围.
--服务器上创建目录 --例子中是在/usr/tmp/coa_out_put 目录下 --修改目录权限 --chmod 776 coa_out_put --使用system用户 创建目录 --create or replace directory CUX_OUT_PATH as '/usr/tmp/coa_out_put/'; --授权目录读写给apps用户 --grant read, write on directory CUX_OUT_PATH to apps; DECLARE l_limit CONSTANT NUMBER := 2000; l_clob CLOB; l_output_patch VARCHAR2(30) := 'CUX_OUT_PATH'; l_output utl_file.file_type; l_file_name VARCHAR2(360); CURSOR cur_program IS SELECT ds.owner, ds.name,ds.type FROM dba_source ds WHERE 1=1 AND regex
导出ORACLE中指定的程序包\视图等.
最新推荐文章于 2021-04-12 10:06:59 发布
本文介绍了如何利用dbms_metadata在ORACLE数据库中导出特定的程序包、视图和触发器,特别是针对以CUX或XXD开头的客户化程序。首先需要设置服务器上的文件路径,并在数据库中创建directory对象并赋予apps用户权限。
摘要由CSDN通过智能技术生成