Skip to content

Instantly share code, notes, and snippets.

@dario61081
Last active May 3, 2017 19:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dario61081/376ed2c1b6003a8d0a77b58c4503568f to your computer and use it in GitHub Desktop.
Save dario61081/376ed2c1b6003a8d0a77b58c4503568f to your computer and use it in GitHub Desktop.
insertar imagenes en oracle con cx_oracle
import os
import shutil
import cx_Oracle
tns = cx_Oracle.makedsn("192.168.0.25",1521,'prod')
db = cx_Oracle.connect("user","123", tns)
def insertarFoto(archivo, codigo):
c = db.cursor()
sql = "INSERT INTO FARMA.IMAGENES (IMAG_CODIGO,PROD_CODIGO,TIIM_CODIGO,IMAG_OBJETO, empr_codigo) VALUES (farma.pk_gral.FL_SGTE_CODE_CONTROL('SQ_IMAG_CODIGO'),:cod_prod ,5,:blob, 1)"
#cargar la imagen
file = open(archivo, 'rb')
contenido = file.read()
#cargar y ejecutar
c.setinputsizes(cod_prod=cx_Oracle.CLOB, blob=cx_Oracle.BLOB)
c.execute(sql, cod_prod=codigo, blob=contenido)
c.execute('commit')
file.close()
print archivo, codigo, 'Enviado'
#directorios
base = os.path.dirname(__file__) + '/photos/'
destino = os.path.dirname(__file__) + '/photos/verificados/'
#verificar ruta destino
if not os.path.exists(destino):
os.makedirs(destino)
#cycle
c = 0
with open('lista_productos_activos.csv', 'rb') as f:
for item in f.readlines():
datos = item.decode('utf8').replace("\"","").split(";")
print datos
archivo = datos[0]
if len(datos)>2:
codigo = int(datos[1])
else:
codigo = None
print '>>>',datos
#buscar si existe un archivo con esta descripcion
obj = base + archivo + '.json'
if os.path.exists(obj):
print "encontrado ", obj, codigo
c+=1
try:
shutil.copy(base + archivo + '.json', destino + archivo + '.json' )
shutil.copy(base + archivo + '.jpg.jpg', destino + archivo + '.jpg.jpg')
#enviar a DDBB
if codigo:
insertarFoto(destino + archivo + '.jpg.jpg', codigo)
except Exception as e:
print e.message
pass
print "encontrado(s) {} coincidencia(s)".format(c)
#desconectar la base
db.close()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment