oracle中bug之ORA-00904:”COS

WBOY
풀어 주다: 2016-06-07 15:37:03
원래의
1167명이 탐색했습니다.

笔者今天遇到一个oracle中的bug,详情请看小生细细道来。 换列名后,标示符还是无效 ORA-00904:”COS_0”: 标示符无效 如题,也许导致这个问题的原因很多,但是本文笔者所要描述的是由于创建表对象时,创建的语句里列名带有双引号问题。“”就是这个符号的原

笔者今天遇到一个oracle中的bug,详情请看小生细细道来。

 

换列名后,标示符还是无效ORA-00904:”COS_0”:标示符无效

oracle中bug之ORA-00904:”COS

 

如题,也许导致这个问题的原因很多,但是本文笔者所要描述的是由于创建表对象时,创建的语句里列名带有双引号问题。“”就是这个符号的原因。如下所示:

create table D_METER_SITECHK  (

  READ_ID             NUMBER(16)                     not null,

  METER_ID            NUMBER(16)                     not null,

  TEST_DEPT_NO         VARCHAR2(16),

  "Ua"                 NUMBER(12,4),

  "Ub"                NUMBER(12,4),

  "Uc"                NUMBER(12,4),

  "la"                NUMBER(12,4),

  constraint PK_D_METER_SITECHK primary key (READ_ID)

);

以上语句里的双引号是怎么来的,一是通过建模工具,自动生成的时候,建模工具会默认把一些字段当成关键字,会莫名其妙给这些看似关键字的列名加上双引号‘“’。但是再PL/SQL创建表的时候,PL/SQL却不报错,而且创建出来的表几乎看不出任何问题。

可是当你对这个表做插入数据时却始终插不进去,无论你换任何列名,都无济于事。但是你执行select操作却能正常把数据查出来。很奇怪吧。

不管你换任何列名,只要你不把以上带双引号的四个列删掉,就会一直出错,但是你会发现,无论你怎么删除或者更改上述四个带双引号的列的列名,始终改不了。系统总是提示:ORA-00904:”COS_0” :标示符无效

解决这个问题的唯一办法就是,删掉这个表,当然如果这个表里的列是别的表的主键,那么其他的表也要受到关联。

重新创建表对象,从建模工具里复制自动生成的sql创建语句到记事本里,然后把双引号去掉。

完事,此问题得到解决。

大概这是oraclebug吧。

带双引号的列,能创建成功,但是无法对这个表对象做任何操作。

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!