【问题标题】: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') 中一样

标签: database jdbc db2


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-03
    • 2013-10-25
    • 2018-09-07
    • 1970-01-01
    • 2014-02-02
    • 2016-11-24
    • 2013-12-24
    • 2019-08-03
    相关资源
    最近更新 更多