2023-04-13
使用UTL_FILE导出包缺失包头部分,请问是什么原因呢?

代码如下
-- 将要导出的包名放在一个表中 CREATE TABLE packages_to_export (pkg_name VARCHAR(100)); INSERT INTO PACKAGES_TO_EXPORT SELECT OBJECT_NAME FROM DBA_OBJECTS WHERE OBJECT_TYPE='PACKAGE' AND OWNER='DMHR'; -- 遍历表中的包名,逐个导出到文件中 DECLARE file_handle UTL_FILE.FILE_TYPE; file_path VARCHAR2(200); package_body VARCHAR2(32767); BEGIN FOR p IN (SELECT pkg_name FROM packages_to_export) LOOP -- 生成要导出的包的文件名 file_path := '/home/dmdba/pkg' || p.pkg_name || '.pkb'; -- 打开要导出的文件并写入包体内容 file_handle := UTL_FILE.FOPEN('DIR01', p.pkg_name || '.pkb', 'w'); SELECT text INTO package_body FROM user_source WHERE name = p.pkg_name AND type = 'PACKAGE BODY' ORDER BY line; UTL_FILE.PUT_LINE(file_handle, package_body); UTL_FILE.FCLOSE(file_handle); END LOOP; END; /
复制
使用以上代码,导出来的包只有包体,没有包头部分内容,请问是什么原因呢?
我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
回答交流
Markdown
请输入正文
提交
相关推荐
达梦数据库导入表报错:文件打开错误,且表结构,以及表里的数据均没有导入
回答 1
你把目录名称改成英文试试
dimp导入owner,多了很多TEMP开头的表?
回答 1
打开这些表看看,里面是什么内容,一般情况下不会多出这么多表的。
达梦数据库搭建了主备,怎么开启守护进程和监控器的后台进程?
回答 1
具体是指哪个工具呢
在达梦客户端,插入数据,需要commit一下,如果我修改表结构,也需要commit一下吗?
回答 2
已采纳
不需要,DDL语句自动commit的
达梦设置其它数据库的兼容性,目的是什么?
回答 1
已采纳
兼容不同的数据库,数据迁移会用到。
达梦数据库怎么看存储过程?
回答 1
达梦有自己的管理工具,使用管理工具连接数据库可以看到存储过程
达梦数据库怎么授权用户查看指定模式的权限?
回答 1
授予用户对某一模式的只读权限,并查询select‘grantselecton模式名.’||tablename||’to只读用户;’fromdbatableswhereowner‘模式名’;例如授予RE
dmhs的key授权是到22年6月25日的,今天装就报错试用超过三个月,什么原因?
回答 1
请联系达梦客服
sysdba 和 syssso 均提示登录超过限制,还不知道密码,怎么处理?
回答 1
应急模式登录,改
如何查询达梦数据库的小版本号?
回答 1
已采纳
看看这个DM7和DM8查询方法不一样https://www.cndba.cn/dave/article/4260
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~