Hi, i need help with the next error:

"ERR_PYTHON:Oracle-Error-Message: ORA-01036: illegal variable name/number", i used the cx_Oracle module, and the error not is only Oracle Error.

The error its for that python don't translate the query, with the variables ":VARIABLE" when the VARIABLE is a number, this is th ecause of Oracle error.



The template is: updateQUERYBSCS var.

The code :
==============================================================================================
class HilosPrepago(object):
def __init__(self,numhilos,listadoSegmentos,archivoLOG,arregloSalida): global NHilos
       global LSegmnts
       global ALog
       global listadoSalida
       global path_sal
       global queue
       global loggingRegister
       global updateQUERYBSCS
queue = Queue()
       listadoSalida = arregloSalida
       ALog = archivoLOG
       LSegmnts = listadoSegmentos
       NHilos = numhilos
       loggingRegister = log_register(ALog)
       updateQUERYBSCS = """UPDATE CONCIL_ICC
                            SET CONTRATO_ICC = :CONTRATO_ICC,
                            CONTRATO_ATS = :CONTRATO_BSCS,
                            PLAN_ICC = :PLAN_ICC,
                            PLAN_ATS = :PLAN_BSCS,
                            IVA_ICC = :IVA_ICC,
                            IVA_ATS = :IVA_BSCS,
                            IVA_MAPEO = :IVA_MAPEO,
                            PROFILE_ICC = :PROFILE_ICC,
                            PROFILE_ATS = :PROFILE_BSCS,
                            LEG_SOG_ICC = :LEG_SOG_ICC,
                            LEG_SOG_ATS = :LEG_SOG_BSCS,
                            LIC_SOG_ICC = :LIC_SOG_ICC,
                            LIC_SOG_ATS = :LIC_SOG_BSCS,
                            LEGLIG_SOG_ICC = :LEGLIC_SOG_ICC,
                            LEGLIG_SOG_ATS = :LEGLIC_SOG_BSCS,
                            LICN_SOG_ICC = :LICN_SOG_ICC,
                            LICN_SOG_ATS = :LICN_SOG_BSCS,
                            LDN_SOG_ICC = :LDN_SOG_ICC,
                            LDN_SOG_ATS = :LDN_SOG_BSCS,
                            REFILL_SOG_ICC = :REFILL_SOG_ICC,
                            REFILL_SOG_ATS = :REFILL_SOG_BSCS,
                            REFILL_PROM_ICC = :REFILL_PROM_ICC,
                            REFILL_PROM_ATS = :REFILL_PROM_BSCS,
                            DIA_RECARGA_ICC = :DIA_RECARGA_ICC,
                            DIA_RECARGA_PROM_ICC = :DIA_RECARGA_PROM_ICC,
                            DIA_RECARGA_ATS = :DIA_RECARGA_BSCS,
                            CEL_IMSI_ICC = :CEL_IMSI_ICC,
                            CEL_IMSI_ATS = :CEL_IMSI_BSCS,
                            STATUS_ICC = :STATUS_ICC,
                            STATUS_ATS = :STATUS_BSCS,
                            ERROR_CONTRATO = to_number(:ERROR_CONTRATO),
                            ERROR_PLAN = to_number(:ERROR_PLAN),
                            ERROR_IVA_BSCS = to_number(:ERROR_IVA_BSCS),
                            ERROR_IVA_ICC = to_number(:ERROR_IVA_ICC),
                            ERROR_PROFILE = to_number(:ERROR_PROFILE),
                            ERROR_LEGSOG = to_number(:ERROR_LEGSOG),
                            ERROR_LICSOG = to_number(:ERROR_LICSOG),
                            ERROR_LEGLICSOG = to_number(:ERROR_LEGLICSOG),
                            ERROR_LICNSOG = to_number(:ERROR_LICNSOG),
                            ERROR_LDNSOG = to_number(:ERROR_LDNSOG),
                            ERROR_REFILLSOG = to_number(:ERROR_REFILLSOG),
ERROR_REFILLPROMOCION = to_number(:ERROR_REFILLPROMOCION), ERROR_DIA_RECARGA = to_number(:ERROR_DIA_RECARGA), ERROR_DIA_RECARGAPROM = to_number(:ERROR_DIA_RECARGAPROM),
                            ERROR_IMSI = to_number(:ERROR_IMSI),
                            ERROR_STATUS = to_number(:ERROR_STATUS),
                            ERROR_ENALTA = to_number(:ERROR_ENALTA),
ERROR_ENELIMINACION = to_number(:ERROR_ENELIMINACION),
                            PLANACTUALPROMO = :PLANACTUALPROMO,
                            LLEVAPROMOCION = :LLEVAPROMOCION,
                            DUPLICIDAD_DN = to_number(:DUPLICIDAD_DN),
                            VALIDADO_PRODUCCION = :VALIDADO_PRODUCCION,
                            CORREGIDO_EN_ALU = :CORREGIDO_EN_ALU,
                            MENSAJE_CORRECCION = :MENSAJE_CORRECCION
WHERE TELEFONO_ATS = :TELEFONO_BSCS """ #threading.Thread.__init__(self) def ejecutaHilo(self,lista,listaRegistrosOUT,archLog,hilo):
       from OracleConnections import OracleConnections
       print "Iniciando la ejecucion para el hilo... %s" % hilo
listaUnica = lista.get() loggingRegister.registrarLog('Lista de datos...'+str(listaUnica))
       FullNameLOG = str(archLog)+'_'+str(hilo)+'_'
       validador = conciliador(FullNameLOG)
       i = 1
       j = 1
       k = 1
       ListadoDeregistros=[]
       conexiondeUpdateenReportes = OracleConnections(FullNameLOG)
abreUpdateReportesIX = conexiondeUpdateenReportes.creaConexion('usuario','password','basededatos') try: for registro in listaUnica:
               pdb.set_trace()
               #registrosDelCampo = {}
#registrosDelCampo = {'TELEFONO_ICC':'','TELEFONO_BSCS':'','CONTRATO_ICC':'','CONTRATO_BSCS':'','PLAN_ICC':'','PLAN_BSCS':'','IVA_ICC':'','IVA_BSCS':'','IVA_MAPEO':'','PROFILE_ICC':'','PROFILE_BSCS':'','LEG_SOG_ICC':'','LEG_SOG_BSCS':'','LIC_SOG_ICC':'','LIC_SOG_BSCS':'','LEGLIC_SOG_ICC':'','LEGLIC_SOG_BSCS':'','LICN_SOG_ICC':'','LICN_SOG_BSCS':'','LDN_SOG_ICC':'','LDN_SOG_BSCS':'','REFILL_SOG_ICC':'','REFILL_SOG_BSCS':'','REFILL_PROM_ICC':'','REFILL_PROM_BSCS':'','DIA_RECARGA_ICC':'','DIA_RECARGA_PROM_ICC':'','DIA_RECARGA_BSCS':'','CEL_IMSI_ICC':'','CEL_IMSI_BSCS':'','STATUS_ICC':'','STATUS_BSCS':'','ERROR_CONTRATO':0,'ERROR_PLAN':0,'ERROR_IVA_BSCS':0,'ERROR_IVA_ICC':0,'ERROR_PROFILE':0,'ERROR_LEGSOG':0,'ERROR_LICSOG':0,'ERROR_LEGLICSOG':0,'ERROR_LICNSOG':0,'ERROR_LDNSOG':0,'ERROR_REFILLSOG':0,'ERROR_REFILLPROMOCION':0,'ERROR_DIA_RECARGA':0,'ERROR_DIA_RECARGAPROM':0,'ERROR_IMSI':0,'ERROR_STATUS':0,'ERROR_ENALTA':0,'ERROR_ENELIMINACION':0,'PLANACTUALPROMO':0,'LLEVAPROMOCION':0,'DUPLICIDAD_DN':0,'
VALIDADO_PRODUCCION':0,'CORREGIDO_EN_ALU':0,'MENSAJE_CORRECCION':0}
               ejecutor = validador.conciliacionGlobal(registro.telefono)
               registrosDelCampo = {
               'TELEFONO_ICC':str(ejecutor.ALU_DN),
               'TELEFONO_BSCS':str(ejecutor.BSCS_DN),
               'CONTRATO_ICC':str(ejecutor.ALU_CO_ID),
               'CONTRATO_BSCS':str(ejecutor.BSCS_CO_ID),
               'PLAN_ICC':str(ejecutor.ALU_ICCCODE),
               'PLAN_BSCS':str(ejecutor.BSCS_ICCCODE),
'IVA_ICC':str(ejecutor.ALU_IVA), #Para cambiar por solo el IVA
               'IVA_BSCS':str(ejecutor.BSCS_IVA),
'IVA_MAPEO':str(ejecutor.BSCS_IVA_MAPEO), #Para cambiar solo por el IVA
               'PROFILE_ICC':str(ejecutor.ALU_PROFILE),
               'PROFILE_BSCS':str(ejecutor.BSCS_PROFILE),
               'LEG_SOG_ICC':str(ejecutor.ALU_LEGSOG),
               'LEG_SOG_BSCS':str(ejecutor.BSCS_LEGSOG),
               'LIC_SOG_ICC':str(ejecutor.ALU_LICSOG),
               'LIC_SOG_BSCS':str(ejecutor.BSCS_LICSOG),
               'LEGLIC_SOG_ICC':str(ejecutor.ALU_LEGLICSOG),
               'LEGLIC_SOG_BSCS':str(ejecutor.BSCS_LEGLICSOG),
               'LICN_SOG_ICC':str(ejecutor.ALU_LICNSOG),
               'LICN_SOG_BSCS':str(ejecutor.BSCS_LICNSOG),
               'LDN_SOG_ICC':str(ejecutor.ALU_LDNSOG),
               'LDN_SOG_BSCS':str(ejecutor.BSCS_LDNSOG),
               'REFILL_SOG_ICC':str(ejecutor.ALU_REFILLSOG),
               'REFILL_SOG_BSCS':str(ejecutor.BSCS_REFILLSOG),
               'REFILL_PROM_ICC':str(ejecutor.ALU_REFILLPROMOCION),
               'REFILL_PROM_BSCS':str(ejecutor.BSCS_REFILLPROMOCION),
               'DIA_RECARGA_ICC':str(ejecutor.ALU_DIA_RECARGA),
               'DIA_RECARGA_PROM_ICC':str(ejecutor.ALU_DIA_RECARGAPROM),
               'DIA_RECARGA_BSCS':str(ejecutor.BSCS_DIA_RECARGA),
               'CEL_IMSI_ICC':str(ejecutor.ALU_IMSI),
               'CEL_IMSI_BSCS':str(ejecutor.BSCS_IMSI),
               'STATUS_ICC':str(ejecutor.ALU_CH_STATUS),
               'STATUS_BSCS':str(ejecutor.BSCS_CH_STATUS),
               'ERROR_CONTRATO':str(ejecutor.error_coid),
               'ERROR_PLAN':str(ejecutor.error_plan),
               'ERROR_IVA_BSCS':str(ejecutor.error_iva_bscs),
               'ERROR_IVA_ICC':str(ejecutor.error_iva_icc),
               'ERROR_PROFILE':str(ejecutor.error_profile),
               'ERROR_LEGSOG':str(ejecutor.error_legsog),
               'ERROR_LICSOG':str(ejecutor.error_licsog),
               'ERROR_LEGLICSOG':str(ejecutor.error_leglicsog),
               'ERROR_LICNSOG':str(ejecutor.error_licnsog),
               'ERROR_LDNSOG':str(ejecutor.error_ldnsog),
               'ERROR_REFILLSOG':str(ejecutor.error_refillsog),
               'ERROR_REFILLPROMOCION':str(ejecutor.error_refillpromocion),
               'ERROR_DIA_RECARGA':str(ejecutor.error_diarecarga),
               'ERROR_DIA_RECARGAPROM':str(ejecutor.error_diarecargaprom),
               'ERROR_IMSI':str(ejecutor.error_imsi),
               'ERROR_STATUS':str(ejecutor.error_status),
               'ERROR_ENALTA':str(ejecutor.error_enAlta),
               'ERROR_ENELIMINACION':str(ejecutor.error_enEliminacion),
               'PLANACTUALPROMO':ejecutor.PLANACTUALPROMO,
               'LLEVAPROMOCION':ejecutor.LLEVAPROMOCION,
               'DUPLICIDAD_DN':'1',
               'VALIDADO_PRODUCCION':'Si',
               'CORREGIDO_EN_ALU':'No',
               'MENSAJE_CORRECCION':''
               }
               ListadoDeregistros.append(registrosDelCampo)
               #print registrosDelCampo
#========================================================================================================= #Aqui se realizara una prevalidacion antes de mandar las correcciones #========================================================================================================= #=========================================================================================================
               #Terminan las correcciones
#========================================================================================================= #pdb.set_trace() registroxLinea =str(ejecutor.BSCS_TMCODE)+','+str(ejecutor.BSCS_DN)+','+str(ejecutor.ALU_DN)+','+str(ejecutor.BSCS_CO_ID)+','+str(ejecutor.ALU_CO_ID)+','+str(ejecutor.BSCS_DIA_RECARGA)+','+str(ejecutor.ALU_DIA_RECARGA)+','+str(ejecutor.BSCS_CH_STATUS)+','+str(ejecutor.ALU_CH_STATUS)+','+str(ejecutor.BSCS_IMSI)+','+str(ejecutor.ALU_IMSI)+','+str(ejecutor.BSCS_DESCPLAN)+','+str(ejecutor.BSCS_SNCODELEG)+','+str(ejecutor.BSCS_SNCODELIC)+','+str(ejecutor.BSCS_SNCODELEGLIC)+','+str(ejecutor.BSCS_SNCODELICN)+','+str(ejecutor.BSCS_SNCODELDN)+','+str(ejecutor.BSCS_SNCODEREFILL)+','+str(ejecutor.BSCS_ICCCODE)+','+str(ejecutor.ALU_ICCCODE)+','+str(ejecutor.BSCS_PROFILE)+','+str(ejecutor.ALU_PROFILE)+','+str(ejecutor.BSCS_LEGSOG)+','+str(ejecutor.ALU_LEGSOG)+','+str(ejecutor.BSCS_LICSOG)+','+str(ejecutor.ALU_LICSOG)+','+str(ejecutor.BSCS_LEGLICSOG)+','+str(ejecutor.ALU_LEGLICSOG)+','+str(ejecutor.BSCS_LICNSOG)+','+str(ejecutor.ALU_LICNSOG)+','+str(ejecutor.BSCS_LDNSOG)+','+str(ejecutor.ALU_LDNSOG)+','+ str(ejecutor.BSCS_REFILLSOG)+','+str(ejecutor.ALU_REFILLSOG)+','+str(ejecutor.error_coid)+','+str(ejecutor.error_diarecarga)+','+str(ejecutor.error_status)+','+str(ejecutor.error_imsi)+','+str(ejecutor.error_plan)+','+str(ejecutor.error_profile)+','+str(ejecutor.error_legsog)+','+str(ejecutor.error_licsog)+','+str(ejecutor.error_leglicsog)+','+str(ejecutor.error_licnsog)+','+str(ejecutor.error_ldnsog)+','+str(ejecutor.error_refillsog)+','+str(ejecutor.error_sncodesBSCS)+','+str(ejecutor.escenarioCorreccion)+'\n' loggingRegister.registrarLog('Linea de conciliacion...'+str(registroxLinea)+str(hilo))
               #listaRegistrosOUT.append(ejecutor)
print 'Registro %s, Telefono: %s, el registro validado corresponde al Hilo: %s ' %(str(k),registro.telefono,str(hilo)) k = k+1
               i = i+1
               if (i == 1000):
loggingRegister.registrarLog('Abrimos conexion para ejecutar actualizacion en ReportesIX...'+str(hilo)) RS_UPDATE = conexiondeUpdateenReportes.ejecutaUpdate(updateQUERYBSCS, ListadoDeregistros, abreUpdateReportesIX) listadoSalida['Hilo_'+str(hilo)]=int(listadoSalida['Hilo_'+str(hilo)])+int(RS_UPDATE)
                   ListadoDeregistros=[]
                   i = 1


loggingRegister.registrarLog('Abrimos conexion para ejecutar actualizacion en ReportesIX final...'+str(hilo)) RS_UPDATE = conexiondeUpdateenReportes.ejecutaUpdate(updateQUERYBSCS, ListadoDeregistros, abreUpdateReportesIX) listadoSalida['Hilo_'+str(hilo)]=int(listadoSalida['Hilo_'+str(hilo)])+int(RS_UPDATE) conexiondeUpdateenReportes.cierraConexion(abreUpdateReportesIX)
           lista.task_done()
       except Exception, err:
           print "Error en la ejecucion: %s " % err
lista.task_done()

==============================================================================================



This is my debug output:

============================================================================================== ==============================================================================================
-bash-3.2$ ./conciliaAltas_Cambios.py
sliceDNUnique(telefono='522281926890')
sliceDNUnique(telefono='523141209462')
2
Se genero tupla con los registros del 0 al 0. --
Se genero tupla con los registros del 0 al 0. --
Se genero tupla con los registros del 0 al 0. --
Se genero tupla con los registros del 0 al 0. --
Se genero tupla con los registros del 0 al 0. --
Se genero tupla con los registros del 0 al 0. --
Total de hilos a ejecutar: 1
Datos por hilo: ----- 2 ----
================================================
Iniciando el proceso de ejecucion por hilos
================================================
Iniciando la ejecucion por hilos...
Iniciando la ejecucion para el hilo... 0
 /data/NEW_ALUCLIENT_PRUEBAS/bin/prepagoThreads.py(116)ejecutaHilo()
-> ejecutor = validador.conciliacionGlobal(registro.telefono)
(Pdb) c
====================================================================================
Registro 1, Telefono: 522281926890, el registro validado corresponde al Hilo: 0
 /data/NEW_ALUCLIENT_PRUEBAS/bin/prepagoThreads.py(116)ejecutaHilo()
-> ejecutor = validador.conciliacionGlobal(registro.telefono)
(Pdb) c
====================================================================================
Registro 2, Telefono: 523141209462, el registro validado corresponde al Hilo: 0
 /data/NEW_ALUCLIENT_PRUEBAS/bin/OracleConnections.py(350)ejecutaUpdate()
-> cursor = conn.cursor()
(Pdb) n
 /data/NEW_ALUCLIENT_PRUEBAS/bin/OracleConnections.py(353)ejecutaUpdate()
-> cursor.arraysize = 100000
(Pdb)
 /data/NEW_ALUCLIENT_PRUEBAS/bin/OracleConnections.py(356)ejecutaUpdate()
-> try:
(Pdb)
 /data/NEW_ALUCLIENT_PRUEBAS/bin/OracleConnections.py(357)ejecutaUpdate()
-> cursor.executemany(query,registros)
(Pdb)
DatabaseError: <cx_Orac...x9776ce0>
 /data/NEW_ALUCLIENT_PRUEBAS/bin/OracleConnections.py(357)ejecutaUpdate()

-> cursor.executemany(query,registros)
(Pdb) n
 /data/NEW_ALUCLIENT_PRUEBAS/bin/OracleConnections.py(361)ejecutaUpdate()
-> except cx_Oracle.DatabaseError, exc:
(Pdb)
 /data/NEW_ALUCLIENT_PRUEBAS/bin/OracleConnections.py(362)ejecutaUpdate()
-> error, = exc.args
(Pdb)
 /data/NEW_ALUCLIENT_PRUEBAS/bin/OracleConnections.py(363)ejecutaUpdate()
-> print >> sys.stderr, XP_ERROR+"Oracle-Error-Code:", error.code
(Pdb)
ERR_PYTHON:Oracle-Error-Code: 1036
 /data/NEW_ALUCLIENT_PRUEBAS/bin/OracleConnections.py(364)ejecutaUpdate()
-> print >> sys.stderr, XP_ERROR+"Oracle-Error-Message:", error.message
(Pdb)
ERR_PYTHON:Oracle-Error-Message: ORA-01036: illegal variable name/number

 /data/NEW_ALUCLIENT_PRUEBAS/bin/OracleConnections.py(365)ejecutaUpdate()
-> print query
(Pdb) n
UPDATE CONCIL_ICC
                            SET CONTRATO_ICC = :CONTRATO_ICC,
                            CONTRATO_ATS = :CONTRATO_BSCS,
                            PLAN_ICC = :PLAN_ICC,
                            PLAN_ATS = :PLAN_BSCS,
                            IVA_ICC = :IVA_ICC,
                            IVA_ATS = :IVA_BSCS,
                            IVA_MAPEO = :IVA_MAPEO,
                            PROFILE_ICC = :PROFILE_ICC,
                            PROFILE_ATS = :PROFILE_BSCS,
                            LEG_SOG_ICC = :LEG_SOG_ICC,
                            LEG_SOG_ATS = :LEG_SOG_BSCS,
                            LIC_SOG_ICC = :LIC_SOG_ICC,
                            LIC_SOG_ATS = :LIC_SOG_BSCS,
                            LEGLIG_SOG_ICC = :LEGLIC_SOG_ICC,
                            LEGLIG_SOG_ATS = :LEGLIC_SOG_BSCS,
                            LICN_SOG_ICC = :LICN_SOG_ICC,
                            LICN_SOG_ATS = :LICN_SOG_BSCS,
                            LDN_SOG_ICC = :LDN_SOG_ICC,
                            LDN_SOG_ATS = :LDN_SOG_BSCS,
                            REFILL_SOG_ICC = :REFILL_SOG_ICC,
                            REFILL_SOG_ATS = :REFILL_SOG_BSCS,
                            REFILL_PROM_ICC = :REFILL_PROM_ICC,
                            REFILL_PROM_ATS = :REFILL_PROM_BSCS,
                            DIA_RECARGA_ICC = :DIA_RECARGA_ICC,
                            DIA_RECARGA_PROM_ICC = :DIA_RECARGA_PROM_ICC,
                            DIA_RECARGA_ATS = :DIA_RECARGA_BSCS,
                            CEL_IMSI_ICC = :CEL_IMSI_ICC,
                            CEL_IMSI_ATS = :CEL_IMSI_BSCS,
                            STATUS_ICC = :STATUS_ICC,
                            STATUS_ATS = :STATUS_BSCS,
                            ERROR_CONTRATO = to_number(:ERROR_CONTRATO),
                            ERROR_PLAN = to_number(:ERROR_PLAN),
                            ERROR_IVA_BSCS = to_number(:ERROR_IVA_BSCS),
                            ERROR_IVA_ICC = to_number(:ERROR_IVA_ICC),
                            ERROR_PROFILE = to_number(:ERROR_PROFILE),
                            ERROR_LEGSOG = to_number(:ERROR_LEGSOG),
                            ERROR_LICSOG = to_number(:ERROR_LICSOG),
                            ERROR_LEGLICSOG = to_number(:ERROR_LEGLICSOG),
                            ERROR_LICNSOG = to_number(:ERROR_LICNSOG),
                            ERROR_LDNSOG = to_number(:ERROR_LDNSOG),
                            ERROR_REFILLSOG = to_number(:ERROR_REFILLSOG),
ERROR_REFILLPROMOCION = to_number(:ERROR_REFILLPROMOCION), ERROR_DIA_RECARGA = to_number(:ERROR_DIA_RECARGA), ERROR_DIA_RECARGAPROM = to_number(:ERROR_DIA_RECARGAPROM),
                            ERROR_IMSI = to_number(:ERROR_IMSI),
                            ERROR_STATUS = to_number(:ERROR_STATUS),
                            ERROR_ENALTA = to_number(:ERROR_ENALTA),
ERROR_ENELIMINACION = to_number(:ERROR_ENELIMINACION),
                            PLANACTUALPROMO = :PLANACTUALPROMO,
                            LLEVAPROMOCION = :LLEVAPROMOCION,
                            DUPLICIDAD_DN = to_number(:DUPLICIDAD_DN),
                            VALIDADO_PRODUCCION = :VALIDADO_PRODUCCION,
                            CORREGIDO_EN_ALU = :CORREGIDO_EN_ALU,
                            MENSAJE_CORRECCION = :MENSAJE_CORRECCION
                            WHERE TELEFONO_ATS = :TELEFONO_BSCS
 /data/NEW_ALUCLIENT_PRUEBAS/bin/OracleConnections.py(366)ejecutaUpdate()
-> sys.exit(1)
(Pdb) q
Error en la ejecucion:
Finalizando el proceso ....

==============================================================================================
==============================================================================================


--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to