DB2 数据库名称是不是区分大小写

Posted

技术标签:

【中文标题】DB2 数据库名称是不是区分大小写【英文标题】:DB2 database name is case sensitive or notDB2 数据库名称是否区分大小写 【发布时间】:2014-10-09 02:21:30 【问题描述】:

在我的 DB2 中,我创建了名为“SAMPLE”的数据库。并且,在连接 Razor DB2 客户端时,它可以连接到“SAMPLE”数据库,不区分大小写。

例如,

jdbc:db2://localhost:50000/sAmple

jdbc:db2://localhost:50000/Sample

jdbc:db2://localhost:50000/saMple

jdbc:db2://localhost:50000/SAMPLE

它们都可以连接到 DB2。但是当我带着结果时,只有 SAMPLE 数据库可以显示结果。我想知道如何使用区分大小写的“SAMPLE”数据库名称连接到 DB2。

【问题讨论】:

您能解释一下“当我使用他们的结果时,只有 SAMPLE 数据库可以显示结果”的意思吗? "select * from TABLE(SNAP_GET_BP(CAST(NULL as varchar(255)), -1)) where db_name='SAMPLE'" 可以显示结果。 而不是“select * from TABLE(SNAP_GET_BP(CAST(NULL as varchar(255)), -1)) where db_name='sample'”无法显示结果。但它可以成功连接到 SAMPLE 数据库。 要么转换 db_name 的参数,然后再将其交给 sql,要么使用 upperucase 函数,如 where db_name=upper('sample') 中一样 【参考方案1】:

DB2 数据库不区分大小写 SAMPlE = sample = SAMple。然而:

有些工具需要大写才能工作。可能,他们考虑到了实例目录 (db2 list db directory) 将数据库名称更改为大写以进行内部标识,并以这样的方式存储在数据库目录中。并且任何使用数据库名称的函数都应该是大写的。

这种行为类似于表格。例如EMPLOYEE = employee,但表在数据库目录中存储为EMPLOYEE。但是,您可以通过引号将名称强制为小写,例如"employee",但这被认为是一种不好的做法。另一方面,数据库名称不保持大小写用引号括起来。

【讨论】:

以上是关于DB2 数据库名称是不是区分大小写的主要内容,如果未能解决你的问题,请参考以下文章

cookie 的名称是不是区分大小写?

如果按名称搜索,如果列上有索引,是不是需要使列(字符串)对 EF Core 查询区分大小写?

sql语法有没有区分大小写?

请问mysql数据类型是不是区分大小写?

如何查看mysql表名字段是不是区分大小写

SQL Server 触发器:在区分大小写的数据库中“插入”的对象名称无效