问题现象
数据抽取工具报错。
研发排查后发现,这条语句不执行导致。转来让解决此问题。
问题分析
与研发沟通发现。是因为在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” ;