0

我正在尝试使用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 格式输出它以进行数据集成。所以我尝试运行schema带有 json 格式输出的命令,但它失败了(此处为完整日志):

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 服务器运行时,我也面临着类似的问题。

所以,两个问题:

  1. 如何以 JSON 格式从 db2 服务器中提取模式信息?
  2. 我怎样才能为 Oracle 服务器做同样的事情?

谢谢你。

4

1 回答 1

0

苏坦迪奥诺,

您绝对可以为 IBM DB2 和 Oracle 数据库提取 JSON 格式的模式元数据。您的日志不完整,所以最后我看不到堆栈跟踪。不过,我可以看到,您的类路径中有 Jackson jar 文件,这很好。除此之外,您可以尝试使用附加的命令行参数--output-format json. (请让我知道这是否有效。)在下一个 SchemaCrawler 版本中,您将收到更好的错误消息,例如“错误:命令不支持输出格式”,这将对您有所帮助。

Sualeh Fatehi,SchemaCrawler

于 2020-07-17T19:36:19.463 回答