Thread: [cx-oracle-users] OCI-22054 error using cx_Oracle
Brought to you by:
atuining
From: Molina, G. <Ger...@sc...> - 2005-09-22 18:37:55
|
I'm getting the following error: Traceback (most recent call last): File "./pydbconn.py", line 113, in ? (bid, eid, cx_Oracle.DatabaseError: OCI-22054: underflow error Google didn't turn up much on this error. Any help would be greatly appreciated. TIA, Gerardo Here is program listing: #!/usr/bin/env python # pydbconn # test sql connect import cx_Oracle user =3D 'perfstat' pword =3D 'itsnotthis' dbstring =3D 'TESTDB' connection =3D cx_Oracle.connect(user,pword,dbstring) bid =3D 11 eid =3D 12 dbid =3D 4275102739 inst_num =3D 1 para =3D 'NO' lhtr =3D 0 bfwt =3D 0 tran =3D 0 chng =3D 0 ucal =3D 0 urol =3D 0 rsiz =3D 0 phyr =3D 0 phyrd =3D 0 phyrdl =3D 0=20 phyw =3D 0 ucom =3D 0 prse =3D 0 hprs =3D 0 recr =3D 0 gets =3D 0 rlsr =3D 0 rent =3D 0 srtm =3D 0 srtd =3D 0 srtr =3D 0 strn =3D 0 lhr =3D 0 #bc =3D '' sp =3D '' lb =3D '' bs =3D '' twt =3D 0 logc =3D 0 prscpu =3D 0 tcpu =3D 0 exe =3D 0 prsela =3D 0 bspm =3D 0 espm =3D 0 bfrm =3D 0 efrm =3D 0 blog =3D 0 elog =3D 0 bocur =3D 0 eocur =3D 0 dmsd =3D 0 dmfc =3D 0 dmsi =3D 0 pmrv =3D 0 pmpt =3D 0 npmrv =3D 0 npmpt =3D 0 dbfr =3D 0 dpms =3D 0 dnpms =3D 0 glsg =3D 0 glag =3D 0 glgt =3D 0 glsc =3D 0 glac =3D 0 glct =3D 0 glrl =3D 0 gcdfr =3D 0 gcge =3D 0 gcgt =3D 0 gccv =3D 0 gcct =3D 0 gccrrv =3D 0 gccrrt =3D 0 gccurv =3D 0 gccurt =3D 0 gccrsv =3D 0 gccrbt =3D 0 gccrft =3D 0 gccrst =3D 0 gccusv =3D 0 gccupt =3D 0 gccuft =3D 0 gccust =3D 0 msgsq =3D 0 msgsqt =3D 0 msgsqk =3D 0 msgsqtk =3D 0 msgrq =3D 0 msgrqt =3D 0 # Call proc statspack.stat_changes cursor2 =3D connection.cursor() outbcVar =3D cursor2.var(cx_Oracle.STRING) outspVar =3D cursor2.var(cx_Oracle.STRING) outlbVar =3D cursor2.var(cx_Oracle.STRING) outbsVar =3D cursor2.var(cx_Oracle.STRING) cursor2.callproc('statspack.stat_changes', (bid, eid, dbid, inst_num, para, lhtr, bfwt, tran, chng, ucal, urol, rsiz, phyr, phyrd, phyrdl, phyw, ucom, prse, hprs, recr, gets, rlsr, rent, srtm, srtd, srtr, strn, lhr, outbcVar, outspVar, outlbVar, outbsVar, twt, logc, prscpu, tcpu, exe, prsela, bspm, espm, bfrm, efrm, blog, elog, bocur, eocur, dmsd, dmfc, dmsi, pmrv, pmpt, npmrv, npmpt, dbfr, dpms, dnpms, glsg, glag, glgt, glsc, glac, glct, glrl, gcdfr, gcge, gcgt, gccv, gcct, gccrrv, gccrrt, gccurv, gccurt, gccrsv, gccrbt, gccrft, gccrst, gccusv, gccupt, gccuft, gccust, msgsq, msgsqt, msgsqk, msgsqtk, msgrq, msgrqt )) |
From: Anthony T. <ant...@gm...> - 2005-09-24 16:44:43
|
The reason this is happening is because you are doing the following: a) calling a procedure with out parameters that specify number b) passing in numbers which are integers Of course, Oracle is trying to return a floating point number at this point and is failing on converting the number back to an integer...... If you change all of your =3D 0 to =3D 0.0 the problem goes away. On 9/22/05, Molina, Gerardo <Ger...@sc...> wrote: > > > I'm getting the following error: > > Traceback (most recent call last): > File "./pydbconn.py", line 113, in ? > (bid, eid, > cx_Oracle.DatabaseError: OCI-22054: underflow error > > Google didn't turn up much on this error. > > Any help would be greatly appreciated. > > TIA, > Gerardo > > > Here is program listing: > > #!/usr/bin/env python > > # pydbconn > > # test sql connect > > import cx_Oracle > > user =3D 'perfstat' > pword =3D 'itsnotthis' > dbstring =3D 'TESTDB' > > connection =3D cx_Oracle.connect(user,pword,dbstring) > > bid =3D 11 > eid =3D 12 > dbid =3D 4275102739 > inst_num =3D 1 > para =3D 'NO' > > lhtr =3D 0 > bfwt =3D 0 > tran =3D 0 > chng =3D 0 > ucal =3D 0 > urol =3D 0 > rsiz =3D 0 > phyr =3D 0 > phyrd =3D 0 > phyrdl =3D 0 > phyw =3D 0 > ucom =3D 0 > prse =3D 0 > hprs =3D 0 > recr =3D 0 > gets =3D 0 > rlsr =3D 0 > rent =3D 0 > srtm =3D 0 > srtd =3D 0 > srtr =3D 0 > strn =3D 0 > lhr =3D 0 > #bc =3D '' > sp =3D '' > lb =3D '' > bs =3D '' > twt =3D 0 > logc =3D 0 > prscpu =3D 0 > tcpu =3D 0 > exe =3D 0 > prsela =3D 0 > bspm =3D 0 > espm =3D 0 > bfrm =3D 0 > efrm =3D 0 > blog =3D 0 > elog =3D 0 > bocur =3D 0 > eocur =3D 0 > dmsd =3D 0 > dmfc =3D 0 > dmsi =3D 0 > pmrv =3D 0 > pmpt =3D 0 > npmrv =3D 0 > npmpt =3D 0 > dbfr =3D 0 > dpms =3D 0 > dnpms =3D 0 > glsg =3D 0 > glag =3D 0 > glgt =3D 0 > glsc =3D 0 > glac =3D 0 > glct =3D 0 > glrl =3D 0 > gcdfr =3D 0 > gcge =3D 0 > gcgt =3D 0 > gccv =3D 0 > gcct =3D 0 > gccrrv =3D 0 > gccrrt =3D 0 > gccurv =3D 0 > gccurt =3D 0 > gccrsv =3D 0 > gccrbt =3D 0 > gccrft =3D 0 > gccrst =3D 0 > gccusv =3D 0 > gccupt =3D 0 > gccuft =3D 0 > gccust =3D 0 > msgsq =3D 0 > msgsqt =3D 0 > msgsqk =3D 0 > msgsqtk =3D 0 > msgrq =3D 0 > msgrqt =3D 0 > > # Call proc statspack.stat_changes > > cursor2 =3D connection.cursor() > > outbcVar =3D cursor2.var(cx_Oracle.STRING) > outspVar =3D cursor2.var(cx_Oracle.STRING) > outlbVar =3D cursor2.var(cx_Oracle.STRING) > outbsVar =3D cursor2.var(cx_Oracle.STRING) > > cursor2.callproc('statspack.stat_changes', > (bid, eid, > dbid, inst_num, > para, > lhtr, bfwt, > tran, chng, > ucal, urol, > rsiz, > phyr, phyrd, > phyrdl, > phyw, ucom, > prse, hprs, > recr, gets, > rlsr, rent, > srtm, srtd, > srtr, strn, > lhr, outbcVar, > outspVar, outlbVar, > outbsVar, twt, > logc, prscpu, > tcpu, exe, > prsela, > bspm, espm, > bfrm, efrm, > blog, elog, > bocur, eocur, > dmsd, dmfc, > dmsi, > pmrv, pmpt, > npmrv, npmpt, > dbfr, > dpms, dnpms, > glsg, glag, > glgt, glsc, > glac, glct, > glrl, gcdfr, > gcge, gcgt, > gccv, gcct, > gccrrv, gccrrt, gccurv, gccurt, > gccrsv, > gccrbt, gccrft, > gccrst, gccusv, > gccupt, gccuft, > gccust, > msgsq, msgsqt, > msgsqk, msgsqtk, > msgrq, msgrqt )) |