Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.misc -> OCI (in C) : errror reporting for an SQL-statement
void err_report(Cda_Def *cursor, char *sql_cmd)
{
/*
Oracle 7.3.4.OCI
If your SQL statement does not cause a parse error, Oracle sets
sqlca.sqlerrd[4] to zero.
Oracle also sets sqlca.sqlerrd[4] to zero if a parse error begins at the
first character (which occupies position zero).
So, check sqlca.sqlerrd[4] only if sqlca.sqlcode is negative, which
means that an error has occurred.
*/
auto sword n;
auto text msg[512];
printf("\n-- ORACLE error--\n");
n = oerhms(&lda, cursor->rc, msg, (sword) sizeof msg);
fprintf(stderr, "%s", msg);
if (cursor->fc > 0) { fprintf(stderr, "Processing OCI function %s\n", oci_func_tab[cursor->fc]); }
fprintf(stderr, "v2_rc=%i\n", cursor->v2_rc); fprintf(stderr, "rc=%i\n", cursor->rc); fprintf(stderr, "ft=%i\n", cursor->ft); fprintf(stderr, "rpc=%i\n", cursor->rpc); fprintf(stderr, "peo=%i (%s)\n", cursor->peo, (NULL==sql_cmd) ? "" :&(sql_cmd[cursor->peo]));
fprintf(stderr, "wrn=%i\n", cursor->wrn); fprintf(stderr, "rcs1=%i\n", cursor->rcs1); fprintf(stderr, "rcs2=%i\n", cursor->rcs2); fprintf(stderr, "rcs3=%i\n", cursor->rcs3); fprintf(stderr, "rid.rd.rcs4=%i\n", cursor->rid.rd.rcs4); fprintf(stderr, "rid.rd.rcs5=%i\n", cursor->rid.rd.rcs5); fprintf(stderr, "rid.rd.rcs6=%i\n", cursor->rid.rd.rcs6); fprintf(stderr, "rid.rcs7=%i\n", cursor->rid.rcs7); fprintf(stderr, "rid.rcs8=%i\n", cursor->rid.rcs8); fprintf(stderr, "ose=%i\n", cursor->ose); fprintf(stderr, "chk=%i\n", cursor->chk);/* Filler: fprintf(stderr, "rcs9=%s\n", cursor->rcs9); */ }
outputs something like this:
-- ORACLE error--
ORA-01008: not all variables bound
Processing OCI function OEXEC, OEXN
v2_rc=-1008
rc=1008
ft=5
rpc=0
peo=7 (BOSS___A SET F003=decode('@@@@',NULL,F003,'@@@@'),
F004=decode('56',NULL,F004,'56'), P012=decode('@@@@@@@@',NULL,P012,TO_DATE('@@@@@@@@','YYYYMMDD')), P713=decode('00000000.50000',NULL,P713,'00000000.50000'), P014=decode('@@@@',NULL,P014,'@@@@'), P715=decode('@@@@@@@@@@@@@@',NULL,P715,'@@@@@@@@@@@@@@'), P016=decode('@@@@',NULL,P016,'@@@@'), P717=decode('@@@@@@@@@@@@@@',NULL,P717,'@@@@@@@@@@@@@@'), P018=decode('@@@@',NULL,P018,'@@@@'), P719=decode('@@@@@@@@@@@@@@',NULL,P719,'@@@@@@@@@@@@@@'), P020=decode('@@@@',NULL,P020,'@@@@'), P721=decode('@@@@@@@@@@@@@@',NULL,P721,'@@@@@@@@@@@@@@'), P022=decode('@@@@',NULL,P022,'@@@@'), P723=decode('@@@@@@@@@@@@@@',NULL,P723,'@@@@@@@@@@@@@@'), P024=decode('@@@@',NULL,P024,'@@@@'), P708=decode('@@@@',NULL,P708,'@@@@'), P729=decode('@@@@@@@@@@@@@@@@',NULL,P729,'@@@@@@@@@@@@@@@@'), P730=decode('@@@@@@@@@@@@@@@',NULL,P730,'@@@@@@@@@@@@@@@'), F030=decode('@',NULL,F030,'@'), F031=decode('1',NULL,F031,'1'), F032=decode('@',NULL,F032,'@'), F033=decode('@@@@',NULL,F033,'@@@@'), F038=decode('@@@@@@',NULL,F038,'@@@@@@'), F078=decode('@@@@@@@@',NULL,F078,TO_DATE('@@@@@@@@','YYYYMMDD')), F079=decode('20011001',NULL,F079,TO_DATE('20011001','YYYYMMDD')), F099=decode('A',NULL,F099,'A'), F100=decode('20010924',NULL,F100,TO_DATE('20010924','YYYYMMDD')),WHERE
K001='DE0001066280', K002='EUR ', K003='HAN',
rcs1=0 rcs2=0 rcs3=1 rid.rd.rcs4=0 rid.rd.rcs5=0 rid.rd.rcs6=0
Documentation to be found in
${ORACLE_DOC}/dcommon/oin/indexj.htm Received on Thu Sep 27 2001 - 03:06:38 CDT
![]() |
![]() |