Error python + cx_Oracle :Oracle-Error-Message: ORA-01036: illegalvariable name/number

  • Thread starter Mauricio Martinez Garcia
  • Start date
M

Mauricio Martinez Garcia

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 ....

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

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,768
Messages
2,569,574
Members
45,051
Latest member
CarleyMcCr

Latest Threads

Top