我不知道从哪里开始调试这个。一些开发人员已经在他们的 Windows 机器上本地编写了一些 pl/sql 代码,这些代码使用 Oracle 10.2.0.1.0 - 64 位可以很好地完成。当它投入生产时,即 Red Hat 5.3 并运行 10.2.0.2.0,它给了我这个错误:
ORA-00904: "S"."BARSTREAMREFERENCEID": 标识符无效
以下是在 Windows 中运行的代码的要点:
EXECUTE IMMEDIATE('
update candyman.CANDY_REFERENCES s
set ( s.flavour, s.taste, s.colour, s.privateField3 ) =
( select * from
( select r.flavour, r.taste, r.colour, null
from candyman.FOO_REFERENCE_SET t
join candyman.FOO_REFERENCES r on r.fooReferenceID = t.fooReferenceID
where t.barStreamReferenceID = s.barStreamReferenceID
order by r.colour )
where rownum = 1 )
where privateField3 is not null
and exists
( select 1
from candyman.FOO_REFERENCE_SET t
join candyman.FOO_REFERENCES r on r.fooReferenceID = t.fooReferenceID
where t.barStreamReferenceID = s.barStreamReferenceID )
');
我知道......他们应该与公司的其他人一起更新他们的 Oracle 版本,并在与生产相同的版本上进行开发,但为时已晚,我无法控制他们......
任何想法都非常感谢。