Consultor Eletrônico



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