设为首页 收藏本站
查看: 1370|回复: 0

[经验分享] db2表名大小写问题

[复制链接]

尚未签到

发表于 2016-11-18 10:49:40 | 显示全部楼层 |阅读模式
  今天在查warehous数据库下的表Linux_CPU
  db2 "select * from Linux_CPU" 总是提示表未定义.后来发现表名大小写问题,应该在db2提示符下运行 select * from "Linux_CPU"或者db2 "select * from \"Linux_CPU\""才正确,.晚上在IBM网站上查到详细说明.
如何定义和使用含小写字符的 DB2 表名?
  Document #:1807545I27000
Body:
[标题]如何定义和使用含小写字符的 DB2 表名?

环境:
产品:DB2 UDB
平台:跨平台
版本:v8

问题描述:
在 DB2 UDB 中除非另外指定,否则,所有名称都可包括下列字符:
·A 到 Z。当在大多数名称中使用时,字符 A 到 Z 将从小写形式转换为大写形式。
·0 到 9
·@、#、$ 和 _(下划线)
·名称不能以数字或下划线字符开始。
作为数据库对象的表,其命名同样遵循上述规则,因此即使用户创建表时使用的名称是小写的,DB2 仍会自动将其转化为大写的形式,如:
db2 create table testname (a1 int)
DB20000I SQL 命令成功完成。
db2 list tables
表/视图    模式 类型 创建时间
------------------------------- --------------- ----- --------------------------
:
TESTNAME TESTUSER T 2005-09-24-18.15.30.428001
:
如果用户希望创建的表名含有小写字符时应如何处理呢?这里简单介绍一下其创建和使用的方法。

解答:
如果需要创建含小写英文字符的 DB2 表名,应使用双引号将表名括起来,为避免双引号被转义,需在双引号前加上转义字符“\”。以创建一个名为 TestName 的表为例,其创建语句应写为:
db2 "create table \"TestName\" (col1 int)" -- Windows & Unix 环境下
如果创建的表名中包含有“$”的特殊字符时,在 Unix 环境下,还需要在这些字符的前面也加一个转义字符,以创建名为 Test$Name 的表为例,创建语句应为:
db2 create table \"Test\$Name\" (col1 int)
而在 Windows 环境下,可直接写为:
db2 create table \"Test$Name\" (col1 int)
表创建完成之后,在以后对这些表进行引用的时候,同样需要象在创建表的语句中那样对表名加转义符进行引用,如:
Windows 环境下:
db2 insert into \"Test$Name\" values (1),(2)
DB20000I SQL 命令成功完成。
db2 select * from \"Test$Name\"
COL1
-----------
1
2
2 条记录已选择。
Unix 环境下:
db2 "insert into \"Test\$Name\" values (1),(2)"
DB20000I SQL 命令成功完成。
db2 "select * from \"Test\$Name\""
COL1
-----------
1
2
2 条记录已选择。
当然除举例中所使用的“$”特殊字符外,还有一些其它的特殊字符,在今后使用中,应根据情况尝试加上转义符,以创建用户需要的表名。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-302065-1-1.html 上篇帖子: DB2 导入导出命令 下篇帖子: 有没有知道如何连接DB2的数据库?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表