Hi
Today I have noticed a problem in PLSQL Developer when editing table data and try to commit. The problem is as follows:
I have a table with primary key column (ID) declared as deferrable initially deferred and the table has rows for example:
ID col1 col2
1 xxx xxx
2 xxx xxx
3 xxx xxx
...
...
I changed record 1 ID from "1" to "2", and record 2 ID from "2" to "1", and record 3 col1 (say yyy). After that I pressed "post changes" button (and it succeeded) then I pressed "commit" button. At this moment oracle raised primary key error and I pressed "ok" on that message. I know changes are rolled back, but PLSQL Developer disabled all commit buttons ("post changes" and "commit" and "rollback" buttons). This is weird because PLSQL Developer already "knows" that the transaction was rolled back, so why it did not enable these buttons again?
I continue with this situation and correct the IDs (and left record 3 with its new value for col1) , PLSQL Developer enabled post and commit buttons, I pressed them and the transaction was committed, and record 3 still display the new value for col1. But when I queried record 3 again, it did not have the new value for col1.
It seems that PLSQL Developer does not continue to "mark" records for update when the transaction failed, and what I saw before re-query record 3 is an "image" or data that PLSQL Developer thought it was posted and committed successfully, but it was not the true data, so I hope there is a solution for this problem.
Regards.
Today I have noticed a problem in PLSQL Developer when editing table data and try to commit. The problem is as follows:
I have a table with primary key column (ID) declared as deferrable initially deferred and the table has rows for example:
ID col1 col2
1 xxx xxx
2 xxx xxx
3 xxx xxx
...
...
I changed record 1 ID from "1" to "2", and record 2 ID from "2" to "1", and record 3 col1 (say yyy). After that I pressed "post changes" button (and it succeeded) then I pressed "commit" button. At this moment oracle raised primary key error and I pressed "ok" on that message. I know changes are rolled back, but PLSQL Developer disabled all commit buttons ("post changes" and "commit" and "rollback" buttons). This is weird because PLSQL Developer already "knows" that the transaction was rolled back, so why it did not enable these buttons again?
I continue with this situation and correct the IDs (and left record 3 with its new value for col1) , PLSQL Developer enabled post and commit buttons, I pressed them and the transaction was committed, and record 3 still display the new value for col1. But when I queried record 3 again, it did not have the new value for col1.
It seems that PLSQL Developer does not continue to "mark" records for update when the transaction failed, and what I saw before re-query record 3 is an "image" or data that PLSQL Developer thought it was posted and committed successfully, but it was not the true data, so I hope there is a solution for this problem.
Regards.