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

标签 java sql case-insensitive

我根据 this JavaDoc 使用 java.sql.DatabaseMetaData#g​​etTables .

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

我可以在这里制作一个匹配“loinc”、“LOINC”或“Loinc”的模式吗?

最佳答案

Can I craft a pattern here that will match "loinc", "LOINC", or "Loinc"?

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

在实践中这通常不是问题,因为大多数 DBMS 的表名只使用大写字母。 ANSI SQL 标准要求将 SQL 查询中的表名转换为大写,除非它们被引用(使用 ")。由于不断引用是相当乏味的,因此大多数开发人员和大多数软件都使用大写的表名. 所以在大多数情况下,你可以假设表名是大写的,并使用大写的模式。

如果确实需要不区分大小写的查询,可以指定一个nulltableNamePattern(表示不按名称过滤),然后遍历所有结果并检查 Java 代码中的表名。请注意,对于包含大量表的数据库,这可能会很慢。

关于java - 如何为 java.sql.DatabaseMetaData#g​​etTables 创建不区分大小写的模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23664806/

相关文章:

SQL计数和过滤查询优化

java - JPQL 查询不适用于不区分大小写的参数

scala - 忽略scala中字符串的大小写

java - Jackson - 将 class1 的 json 表示形式的对象类型字段映射到 class2

java - SonarQube:自定义 Java 规则在 UI 中不可见

java - Android 中的重置/清除按钮

java - 如何在 DB-MySql 中插入/检索用户定义的对象?

SQL四舍五入没有小数点的整数

sql - 高效的多重分组

Python 不区分大小写替换所有多个字符串