【案例42】“”引发的“血案”--建表带双引号

问题现象

数据抽取工具报错。

研发排查后发现,这条语句不执行导致。转来让解决此问题。

问题分析

与研发沟通发现。是因为在user_segments 中一直有FIP_OPERATINGLOG_copy1 造成的。

询问可以直接drop掉相关表,

drop table FIP_OPERATINGLOG_copy1 ;

或者给修改表名字

RENAME FIP_OPERATINGLOG_copy2 TO FIP_OPERATINGLOG_copy1 ;

可以解决此问题。

但是执行后,数据库表分析直接报错。

初始以为是建表时,未区分单引号双引号导致 

重建FIP_OPERATINGLOG_copy1 表

把双引号替换成单引号。

 CREATE TABLE "NCCXXX"."FIP_OPERATINGLOG_COPY1_BAK" 
   ("OWNER" VARCHAR2(30) NOT NULL ENABLE, 
	"TABLE_NAME" VARCHAR2(30) NOT NULL ENABLE, 
	"TABLESPACE_NAME" VARCHAR2(30), 
	... ... 
   ) SEGMENT CREATION IMMEDIATE 
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
 NOCOMPRESS LOGGING
  ... ...)

再次导出发现依旧报错。

重新drop表。但在dba_tables 再次查看相关表发现不存在。

但是在segment_name 中依旧能发现这个表。

在dba_tables中发现与FIP_OPERATINGLOG有关的表有4张。其中有一张为自己建的备份表。其中一只有张表是小写的状态,直接drop 显示表和视图不存在。

最终发现是在顾问在创建表的时候用了【“表名”】,所以在那dba_tables中记录了小写的copy1,导致抽取工具在读user_segments时状态不对导致导出异常。

再次drop 带双引号的表。

抽取正常。

解决方案

drop table “FIP_OPERATINGLOG_copy1” ;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值