方法getColumns()
元数据上的同义词返回空结果集(对于表和视图,它正确返回列列表)。
这种情况发生在 Oracle 11g Express 并使用最新的 Oracle JDBC 驱动程序 (11.2.3) 上。
其他 SQL 服务器也会发生这种情况吗?
欢迎任何解决此问题的帮助/想法。
默认情况下,Oracle 驱动程序不返回有关同义词的信息getColumns()
。这记录在 Oracle 11g JDBC 开发人员指南中,位于性能扩展:
getColumns 的注意事项
默认情况下,getColumns
如果指定了同义词,方法不会检索有关列的信息。要在指定同义词的情况下启用信息检索,您必须调用setIncludeSynonyms
连接方法如下:
( (oracle.jdbc.driver.OracleConnection)conn ).setIncludeSynonyms(true)
这将导致所有后续getColumns
方法调用连接以包含同义词。这类似于setRemarksReporting
。或者,您可以设置includeSynonyms
连接属性。这类似于remarksReporting
连接属性。
但是,请记住,如果includeSynonyms
为 true,则返回的对象的名称table_name
如果存在同义词,则列将是同义词名称。即使您将表名传递给getColumns
.
请注意,最后一项非常重要,请记住!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)