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,要么使用upper
或 ucase
函数,如 where db_name=upper('sample')
中一样
【参考方案1】:
DB2 数据库不区分大小写 SAMPlE = sample = SAMple
。然而:
db2 list db directory
)
将数据库名称更改为大写以进行内部标识,并以这样的方式存储在数据库目录中。并且任何使用数据库名称的函数都应该是大写的。
这种行为类似于表格。例如EMPLOYEE = employee
,但表在数据库目录中存储为EMPLOYEE
。但是,您可以通过引号将名称强制为小写,例如"employee"
,但这被认为是一种不好的做法。另一方面,数据库名称不保持大小写用引号括起来。
【讨论】:
以上是关于DB2 数据库名称是不是区分大小写的主要内容,如果未能解决你的问题,请参考以下文章