一个极其奇怪的错误(A component named Field58 already exists!!)
建库语句:
CREATE TABLE sheetbalance
(proid NUMBER(10,0) NOT NULL,
year DATE NOT NULL,
field1 NUMBER(20,2),
field2 NUMBER(20,2),
field3 NUMBER(20,2),
field4 NUMBER(20,2),
field5 NUMBER(20,2),
field6 NUMBER(20,2),
field7 NUMBER(20,2),
field8 NUMBER(20,2),
field9 NUMBER(20,2),
field10 NUMBER(20,2),
field11 NUMBER(20,2),
field12 NUMBER(20,2),
field13 NUMBER(20,2),
field14 NUMBER(20,2),
field15 NUMBER(20,2),
group1 NUMBER(20,2),
group2 NUMBER(20,2),
field16 NUMBER(20,2),
field17 NUMBER(20,2),
field19 NUMBER(20,2),
field20 NUMBER(20,2),
field21 NUMBER(20,2),
group3 NUMBER(20,2),
field22 NUMBER(20,2),
field23 NUMBER(20,2),
field24 NUMBER(20,2),
field58 NUMBER(20,2),
field59 NUMBER(20,2),
field60 NUMBER(20,2),
field61 NUMBER(20,2),
field62 NUMBER(20,2),
field63 NUMBER(20,2),
field64 NUMBER(20,2),
group15 NUMBER(20,2),
field65 NUMBER(20,2),
field66 NUMBER(20,2),
field67 NUMBER(20,2),
field68 NUMBER(20,2),
group16 NUMBER(20,2),
field69 NUMBER(20,2),
group17 NUMBER(20,2),
field70 NUMBER(20,2),
field71 NUMBER(20,2),
field72 NUMBER(20,2),
field73 NUMBER(20,2),
field74 NUMBER(20,2),
field75 NUMBER(20,2),
field76 NUMBER(20,2),
field77 NUMBER(20,2),
field78 NUMBER(20,2),
field79 NUMBER(20,2),
field80 NUMBER(20,2),
field81 NUMBER(20,2),
field82 NUMBER(20,2),
field83 NUMBER(20,2),
field84 NUMBER(20,2),
group18 NUMBER(20,2),
field85 NUMBER(20,2),
field86 NUMBER(20,2),
field87 NUMBER(20,2),
field88 NUMBER(20,2),
field89 NUMBER(20,2),
group19 NUMBER(20,2),
group20 NUMBER(20,2),
field90 NUMBER(20,2),
field91 NUMBER(20,2),
field92 NUMBER(20,2),
field93 NUMBER(20,2),
field94 NUMBER(20,2),
field95 NUMBER(20,2),
field96 NUMBER(20,2),
field97 NUMBER(20,2),
field98 NUMBER(20,2),
field99 NUMBER(20,2))
PCTFREE 10
INITRANS 1
MAXTRANS 255
TABLESPACE gcqp_data
STORAGE (
INITIAL 65536
MINEXTENTS 1
MAXEXTENTS 2147483645
)
/
ALTER TABLE sheetbalance
ADD CONSTRAINT pk_sheetbalance PRIMARY KEY (proid, year)
USING INDEX
PCTFREE 10
INITRANS 2
MAXTRANS 255
TABLESPACE gcqp_data
STORAGE (
INITIAL 65536
MINEXTENTS 1
MAXEXTENTS 2147483645
)
/
建表没有问题。查询的语句为:
SELECT proid, year, field1, field2, field3, field4, field5, field6,
field7, field8, field9, field10, field11, field12, field13,
field14, field15, group1, group2, field16, field17, field19,
field20, field21, group3, field22, field23, field24, field58,
field59, field60, field61, field62, field63, field64, group15,
field65, field66, field67, field68, group16, field69, group17,
field70, field71, field72, field73, field74, field75, field76,
field77, field78, field79, field80, field81, field82, field83,
field84, group18, field85, field86, field87, field88, field89,
group19, group20, field90, field91, field92, field93, field94,
field95, field96, field97, field98, field99
FROM sheetbalance
如果上面的Select没有 field58至field67就可以查询。
但是下面的语句也可以查询:
SELECT field58,
field59, field60, field61, field62, field63, field64, group15,
field65, field66, field67
FROM sheetbalance
另外这个表的字段名是通过DotNet程序生成的。所以表名是这种样子。这个表最开始就proid, year连个字段,后面的字段都是程序加入的。加入Sql语句如下:
alter Table sheetbalance add(FIELD[数字] Number(20,2))/
在生成的时候没有遇到问题,但是在查询的时候就提出A component named Field58 already exists错误,而不能查询。
这个问题我已经在DotNet论坛上提出,并已经结贴,解决办法是将出问题的字段删除重新建立。
地址:http://community.csdn.net/Expert/topic/4959/4959458.xml?temp=.5213434
可是没有从根本上解决我的问题。因为随着系统的运行,还将建立新的字段。可是我重新建立字段后发现问题依然存在。还要重建写字段才可以查询整个表。
另外我的Oracle的版本是9.2
请高手赐教!!