导出ORACLE中指定的程序包\视图等.
来源:互联网 发布:csgo优化cfg 编辑:程序博客网 时间:2024/05/18 20:48
最近由于项目原因需要导出系统中有所的客户化程序包\视图\触发器等,试了不少办法,感觉使用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 regexp_like(ds.name, '^(CUX|XXD)') AND ds.type NOT IN ('PACKAGE BODY','JAVA SOURCE') GROUP BY ds.owner,ds.name,ds.type ORDER BY ds.name; l_length NUMBER; l_start NUMBER; l_str_tmp VARCHAR2(4000); BEGIN FOR l_program IN cur_program LOOP l_clob := dbms_metadata.get_ddl(object_type => l_program.type ,name => l_program.name,schema => l_program.owner); l_length := dbms_lob.getlength(l_clob); l_file_name := l_program.owner || '.' || l_program.name; l_output := utl_file.fopen(l_output_patch, l_file_name, 'w','32767'); l_start := 1; LOOP l_str_tmp := to_char(dbms_lob.substr(l_clob,l_limit,l_start)); utl_file.put_raw(l_output, utl_raw.cast_to_raw(l_str_tmp),TRUE); l_start := l_start + l_limit; EXIT WHEN l_start >= l_length; END LOOP; utl_file.fclose(l_output); END LOOP;END;
- 导出ORACLE中指定的程序包\视图等.
- 将Oracle中指定数据库结构导出到PowerDesigner(PD)
- Oracle实现获得字符串中指定字符个数的方法
- eclipse中获取工作区中指定View视图的代码
- 将SQLServer中指定表的数据导出为Insert语句形式
- Python学习—— 导出SVN中指定版本后增加的资源
- shell统计Apache访问日志中指定页面的PV、UV等指标
- Oracle查询表中指定字段的数据是否含有某个字符
- 关于Oracle、Mysql、SQLServer中指定查询结果中返回的行数问题!
- Oracle的程序包
- oracle 程序包的理解
- 删除文件中指定的部分内容
- VC中指定include文件的目录
- DropDownList中指定任意的选中项
- DataGridView中指定的单元格不能编辑
- Ext TreePanel中选中指定的节点
- 如何删除spfile中指定的参数
- 获取xml中指定节点的值
- 自己实现基本的C标准库字符串处理函数——基本问题(转载)
- HDOJ 1061 Rightmost Digit
- 第4章 数组和指针
- cookie 和session 的区别详解
- 应用杀手iOS 5即将消灭的15大应用
- 导出ORACLE中指定的程序包\视图等.
- HDOJ 1063 Exponentiation
- Eclipse3.6与m2eclipse,run-jetty-run插件对WEB项目进行热部署以及在jar源码中进行调试(二)
- 【微博运营】企业微博营销实战流程
- NET程序员,我们应该更专业点
- Eclipse3.6与m2eclipse,run-jetty-run插件对WEB项目进行热部署以及在jar源码中进行调试(三)
- Virtual Audio Cable使用笔记一:使用Virtual Audio Cable将播放器的音频流传输到真实声卡驱动中
- Anders Hejlsberg 访谈 .-转载
- C#.NET中的线程同步类(二)