免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 8703 | 回复: 10
打印 上一主题 下一主题

db2 建表用了 "表名(小写字母)"无法删除此表 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-04-09 18:27 |只看该作者 |倒序浏览
应用方面建表用了CAREATE TABLE "SCHEMA"."table"
导致此表无法读取,无法删除
DB2方面询问过了,除非drop db再create db 否则就成为垃圾表
请教下高手有没有办法

论坛徽章:
0
2 [报告]
发表于 2007-04-09 21:15 |只看该作者
这跟小写字母有什么关系?
drop table即可

论坛徽章:
0
3 [报告]
发表于 2007-04-10 06:47 |只看该作者
drop table说undefined name
建表要么就schema.table
要么就"SCHEMA"."TABLE"
小写字母就是不行的
LS可以去试试 list table  select * from syscat.tables都看的到
但是describe table
Select * from schma.table
drop table 就是不行

论坛徽章:
0
4 [报告]
发表于 2007-04-10 06:52 |只看该作者
上图

$ db2 list tables for schema cardpro|grep test
test_tab                        CARDPRO         T     2007-04-09-17.47.57.666060
test_tab1                       CARDPRO         T     2007-04-09-17.50.11.400194
test_table                      CARDPRO         T     2007-04-09-17.34.37.145763
$ db2 "select tabname,tabschema from syscat.tables where tabname='test_tab'"

TABNAME                                                                                                                          TABSCHEMA

-------------------------------------------------------------------------------------------------------------------------------- -----------
---------------------------------------------------------------------------------------------------------------------
test_tab                                                                                                                         CARDPRO


  1 record(s) selected.

$ db2 drop table cardpro.test_tab
DB21034E  The command was processed as an SQL statement because it was not a
valid Command Line Processor command.  During SQL processing it returned:
SQL0204N  "CARDPRO.TEST_TAB" is an undefined name.  SQLSTATE=42704
$ db2 "select * from cardpro.test_tab"
SQL0204N  "CARDPRO.TEST_TAB" is an undefined name.  SQLSTATE=42704

db2 默认会把小写字符转成大写字符
但是在syscat.tables里面此表名为小写,所以无法匹配
不知道有什么办法可以去除么

论坛徽章:
0
5 [报告]
发表于 2007-04-10 10:50 |只看该作者
需要撤换到db2 => 模式,然后drop table "tabname" ,其中tabname是区分大小写的,drop table 的时候"必须要加上。查询如果带了"也是可以查询的。而在命令行模式" 是做分隔符来用的。

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
6 [报告]
发表于 2007-04-10 11:59 |只看该作者
如果你只是要DROP TABLE,那为什么一定要命令行?用DB2CC不就好了。


以前有人在LU问过同样的问题。一定要用命令行,自己去搜吧。

论坛徽章:
0
7 [报告]
发表于 2007-04-10 23:02 |只看该作者
原帖由 psc2001 于 2007-4-9 18:27 发表
应用方面建表用了CAREATE TABLE "SCHEMA"."table"
导致此表无法读取,无法删除
DB2方面询问过了,除非drop db再create db 否则就成为垃圾表
请教下高手有没有办法

进入db2交互方式(db2回车),可以查询或者删除(小写表名须带引号)。一定要用非交互方式,不清楚了

论坛徽章:
0
8 [报告]
发表于 2007-04-11 09:33 |只看该作者
可以了
谢谢LS的各位大大

论坛徽章:
0
9 [报告]
发表于 2007-04-13 21:35 |只看该作者
我以前遇到过,用db2look 导出制表脚本,然后把CREATE 改为DROP语句,再运行SQL文件删除成功。

论坛徽章:
0
10 [报告]
发表于 2007-04-15 09:11 |只看该作者
表名一定要用引号
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP