我正在尝试使用SchemaCrawler来提取db2测试数据库上的模式信息。
当使用文本或html格式运行schema
命令时,一切如预期:
./schemacrawler.sh --server=db2 --host=127.0.0.1 --port=50000 --database=sample --schemas=DB2INST1 --user="db2inst1" --password=password --info-level=standard --command=schema --tables='.*.P.*'
System Information
========================================================================
generated by SchemaCrawler 16.9.2
generated on 2020-07-17 01:50:58.987909
Tables
========================================================================
DB2INST1.PRODUCT [table]
------------------------------------------------------------------------
PID VARCHAR(10) NOT NULL
NAME VARCHAR(128)
PRICE DECIMAL(30, 2)
PROMOPRICE DECIMAL(30, 2)
PROMOSTART DATE
PROMOEND DATE
DESCRIPTION XML
Primary Key
PK_PRODUCT [primary key]
PID
Indexes
PK_PRODUCT [unique index]
PID ascending
(... and so on ...)
现在,我想以JSON格式输出它,用于数据集成。因此,我尝试运行输出为json格式的schema
命令,但失败了(此处为完整日志(:
SchemaCrawler 16.9.2
Error: Unknown command <schema>
Re-run SchemaCrawler with just the
-h
option for help
Or, re-run SchemaCrawler with an additional
--log-level=CONFIG
option for details on the error
我也用命令serialize
尝试过,但也失败了(此处为完整日志(:
SchemaCrawler 16.9.2
Error: Unknown command <serialize>
Re-run SchemaCrawler with just the
-h
option for help
Or, re-run SchemaCrawler with an additional
--log-level=CONFIG
option for details on the error
顺便说一句,当在Oracle服务器上运行时,我也面临类似的问题。
因此,有两个问题:
- 如何以JSON格式从db2服务器提取模式信息
- 如何对Oracle服务器执行同样的操作
谢谢。
Sutandiono,
您完全可以为IBMDB2和Oracle数据库提取JSON格式的模式元数据。你的日志不完整,所以我看不到最后的堆栈。不过,我可以看到,您的类路径中有Jackson jar文件,这很好。除此之外,您可以尝试使用--output-format json
的额外命令行参数。(请让我知道这是否有效。(在下一个SchemaCrawler版本中,您将收到一条更好的错误消息,如下所示;错误:命令"不支持输出格式;,这将对你有所帮助。
Sualeh Fatehi,SchemaCrawler