【发布时间】:2019-05-20 11:06:01
【问题描述】:
出于性能和其他原因,我正在寻找一种方法来直接解析数据泵转储文件的二进制文件格式。
数据泵实用程序“impdp”仅适用于数据库服务器主机,而不适用于数据库客户端主机。为了运行它,您必须将整个转储文件从 DB 客户端发送到 DB 服务器主机,然后使用 SSH 运行“impdp”。
有时,如果您只想获取包含在转储文件中的模式或表的列表,那么将大文件发送到远程主机是没有意义的。
我正在寻找一个库(在 Java 中首选)或描述转储文件的格式规范,以便编写代码在本地解析它,而无需官方“impdp”实用程序的帮助。
谢谢。
更新:
我使用以下正则表达式过滤转储文件以查找表名:
^[\\x32-\\x7e\\s]{4,}.*</OWNER_NAME><NAME>([^<]*)</NAME>.*
表达式[\\x32-\\x7e\\s] 表示可打印的ASCII 字符,包括空格。这会过滤掉二进制行。
{4,} 表示至少 4 个字符。
由于我正在处理 XML,我正在提取直接位于“OWNER_NAME”元素之后的“NAME”元素。 也许这种方式不是那么优雅,但它似乎有效。
如果这种方式对您有帮助,请发表评论。
【问题讨论】: