Kbase P14844: Oracle error 936 and 1003 after hitting ctrl-C and r-code already referenced
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  10/17/2005 |
|
Status: Unverified
FACT(s) (Environment):
Progress 9.1D
Oracle DataServer
SYMPTOM(s):
Oracle error 936 and 1003 after hitting ctrl-C and r-code already referenced
ORACLE error -936 see "ORACLE Error Messages and Codes Manual". (1252)
missing expression
ORACLE error -1003 see "ORACLE Error Messages and Codes Manual". (1252)
no statement parsed
Receiving Oracle error 936 and 1003 when following conditions are present:
1. A table/tables is already referenced (in r code)
2. Client then hit ctrl-c
3. Client then attemps to insert a record into the table.
Following is typical in dataserv.lg file
17:02:36 OCI call oopen <295> cc = 123
17:02:36 OCI call omru <295>
17:02:36 OCI call oparse <295> sqlcrc = 53307
17:02:36 SELECT .nextval FROM sys.dual
17:02:36 OCI call oexfet <295> num = 1
17:02:36 OCI retr oexfet <295> rc = 936 ----------
CAUSE:
Bug# 20021218-019
CAUSE:
After ctrl-C is entered and user is trying to insert a row to a already referenced table, dataserver needs to get next progress recid from xxxxx_seq table, but because the signal handler cleans up at the wrong place (thus the bug), the SQL statement that gets the next recid (SELECT .nextval FROM sys.dual) is missing reference to the sequence name ( in this case QAD.TR_HIST_seq), a correct SQL statement should be
SELECT QAD.TR_HIST_seq.nextval FROM sys.dual
FIX:
Bug is fixed in 9.1d05 and above