我正在尝试通过JDBC使用钻取,但是我在使用databasemeta-interface时遇到了问题。
我正在访问mongodb数据库(称为HR)和一个名为EMPLOYEES的集合(我们将Oracle的HR模式复制到mongo中以测试我们的代码是否可通过Apache钻取移植到NoSQL和其他非RDBMS源)
像Select * from mongo.HR.EMPLOYEES
一样查询表格工作正常,但我如何访问databasemetadata?
当我尝试使用该方法时
getColumns()
(catalog = null,Schema =“mongo.HR”,table =“EMPLOYEES”),我只收到一个空的结果集。
我还尝试设置catalog = mongo,Schema = HR,table = EMPLOYEES,但没有成功?
任何想法,我可以获得列元数据?
答案 0 :(得分:0)
如果您查看DatabaseMetaData.getColumns
的文档,则会说:
catalog
- 目录名称;必须与目录名称匹配 存储在数据库中;""
检索那些没有目录的人;null
意味着不应使用目录名称来缩小搜索范围schemaPattern
- 架构名称模式;必须匹配模式名称 它存储在数据库中;""
检索没有架构的那些;null
表示不应使用模式名称来缩小 搜索
或者,换句话说,如果您不知道要使用什么,请使用null
catalog
和schemaPattern
。然后,兼容的JDBC驱动程序应该删除(忽略)该条件。然后,您可以检查TABLE_CAT
和TABLE_SCHEM
的值,以查看目录和架构对列实际具有的值。