我根据 this JavaDoc 使用 java.sql.DatabaseMetaData#getTables
.
如果我想查找表格并忽略大小写,我应该为 tableNamePattern
使用什么?这种模式格式记录在哪里?
我可以在这里制作一个匹配“loinc”、“LOINC”或“Loinc”的模式吗?
最佳答案
Can I craft a pattern here that will match "loinc", "LOINC", or "Loinc"?
通常:否。JDBC API 不提供对特定表执行不区分大小写的查询的方法。
在实践中这通常不是问题,因为大多数 DBMS 的表名只使用大写字母。 ANSI SQL 标准要求将 SQL 查询中的表名转换为大写,除非它们被引用(使用 "
)。由于不断引用是相当乏味的,因此大多数开发人员和大多数软件都使用大写的表名. 所以在大多数情况下,你可以假设表名是大写的,并使用大写的模式。
如果确实需要不区分大小写的查询,可以指定一个null
的tableNamePattern
(表示不按名称过滤),然后遍历所有结果并检查 Java 代码中的表名。请注意,对于包含大量表的数据库,这可能会很慢。
关于java - 如何为 java.sql.DatabaseMetaData#getTables 创建不区分大小写的模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23664806/