如何为java.sql.DatabaseMetaData#getTables创建不区分大小写的模式?

时间:2014-05-14 20:47:04

标签: java sql case-insensitive

我每this JavaDoc使用java.sql.DatabaseMetaData#getTables

如果我想查表并忽略大小写,我应该对tableNamePattern使用什么?这种模式格式记录在哪里?

我可以在这里制作一个符合" loinc"," LOINC"或" Loinc"?

的模式

1 个答案:

答案 0 :(得分:1)

  

我可以在这里制作与“ loinc”,“ LOINC”或“   “腰部”?

通常:否。 JDBC API不提供对特定表执行不区分大小写的查询的方法。

实际上,这通常不是问题,因为大多数DBMS仅将大写形式用于表名。 ANSI SQL标准要求将SQL查询中的表名转换为大写,除非用引号引起来(使用")。由于不断引用很繁琐,因此大多数开发人员和大多数软件都使用大写的表名。因此,在大多数情况下,您只能假设表名是大写的,而使用大写的模式。

如果您确实需要不区分大小写的查询,则可以指定tableNamePattern中的null(表示不按名称过滤),然后遍历所有结果并检查表中的表名。 Java代码。请注意,这对于具有很多表的数据库来说可能很慢。