我想以编程方式将我的过程/函数和包导出到单独的文件(作为备份)并使用 Oracle 9.2。
我找到的最接近的解决方案是使用 DBMS_METADATA.GET_DDL,但是我如何将 CLOB 输出到文本文件,而不丢失任何部分(由于长度或缩进)?
或者您是否有其他解决方案来单独备份包或其他功能(只有我想要的一个,而不是全部)?
谢谢
最佳答案
尝试从 SQL*Plus 等命令行实用程序获取 CLOBS(和 LONGS)似乎总是给我带来格式化/截断问题。我的解决方案是用非类型检查语言 (Perl) 编写一个简单的实用程序,它使用 DBMS_METADATA
将 CLOB 恢复为字符串。
片段:
...
$sthRef = $dbhRef->prepare("select dbms_metadata.get_ddl(?,?) from dual");
$sthRef->execute('PACKAGE', $thisName);
while (($thisDDL) = $sthRef->fetchrow()) {
print $thisDDL;
}
$sthRef->finish;
...
关于ORACLE - 将程序/包导出到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/710290/