有没有人在SQL Developer中遇到过编译触发器的错误,它会绕着代码/ sql行移动,导致触发器编译错误?
例如,我昨晚更改了触发器并点击了编译。它返回时出现错误,说我在触发器结束时错过了End If。它已从我在触发器中进一步向下的IF语句中删除了两个END IFS。
我修改了这个并再次编译,这次成功了。但是,今天早上我发现它已经移动了我的INSERT INTO订购!
例如,我有:
insert into table(
A, B, C, D,
E, F, G, H,
I, J, K, L,
M, N, O, P)
VALUES (
A, B, C, D,
E, F, G, H,
I, J, K, L,
M, N, O, P
)
我编译后成了:
insert into table(
A, B, C, D,
E, F, G, H,
I, J, K, L,
M, N, O, P)
VALUES (
E, F, G, H,
I, J, K, L,
A, B, C, D,
M, N, O, P
)
这意味着它编译没有任何问题,但运行它会导致值进入错误的列,并最终在违反最大长度时出错。
答案 0 :(得分:1)
4.0.0.12是第二个早期采用者版本 - 换句话说是测试版 - 和was released in September 2013。还有第三个EA版本,自December以来已有三个版本发布。
current version at the time of writing is 4.0.2(4.0.2.15)。除非你迫切需要坚持早期采用者/测试版,否则你应该只升级到生产版本。
我无法立即看到任何相关的on the SQL Developer forum,这是应该报告早期采用者问题的地方。这并不意味着它没有被报告,也没有被内部发现和修复。如果它已经在以后的版本中修复过,我怀疑他们现在对此非常感兴趣。
如果您升级并仍然看到此错误或任何其他错误,则the release notes说要在My Oracle Support上报告这些错误。