Advertisement
andersonrc_

Untitled

Mar 29th, 2018
253
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.21 KB | None | 0 0
  1. import cx_Oracle
  2. import os
  3. import uuid
  4.  
  5. def conectarOracle(schema, password, host, serviceName):
  6.     url = schema + '/' + password + '@' + host + '/' + serviceName
  7.     connection = cx_Oracle.connect(url)
  8.     print('Conectado ao Oracle! ' + connection.version)
  9.     return connection
  10.  
  11. def write_file(data, filename):
  12.     with open(filename, 'wb') as f:
  13.         f.write(data)
  14.  
  15. def criarDiretorioArquivo(path, ano, mes, dia, data):
  16.     caminho = path + ano + '/' + mes + '/' + dia + '/'
  17.     arquivo = caminho + str(uuid.uuid1()) + '.pdf'
  18.     if not os.path.exists(caminho):
  19.         os.makedirs(caminho)
  20.     if not os.path.exists(arquivo):
  21.         write_file(data, arquivo)
  22.         return arquivo        
  23.    
  24. def main():
  25.  
  26.     host = input('Digite o host do database: ')
  27.     serviceName = input('Digite o service name: ')
  28.     schema = input('Digite o schema: ')
  29.     password = input('Digite a senha: ')
  30.     path = input('Digite o path: ')
  31.  
  32.     try:
  33.    
  34.         print('++++++++++++++++++++++++++++++++++++++++++++++')
  35.         con = conectarOracle(schema, password, host, serviceName)
  36.         cur = con.cursor()
  37.         sql = 'SELECT cod_arquivo, dthinclusao, arquivo FROM tb_arquivo'
  38.         cur.execute(sql)
  39.  
  40.         #contador para saber a quantidade de arquivos gravados no sistema de arquivos
  41.         cont = 0
  42.         for s_cod, s_dthinclusao, s_arquivo in cur:
  43.             s_data = s_dthinclusao.strftime('%Y/%m/%d')
  44.        
  45.             file = criarDiretorioArquivo(path, s_data[:4], s_data[5:7], s_data[8:10], s_arquivo.read())
  46.             print('++++++++++++++++++++++++++++++++++++++++++++++')
  47.             print(file)
  48.  
  49.             cur = con.cursor()
  50.             sqlUpdate = 'UPDATE tb_arquivo SET ds_path_arquivo = :1, ds_arquivo = :2 WHERE cod_arquivo = :3'
  51.             cur.execute(sqlUpdate, (file[:-41], file[-40:], s_cod))
  52.  
  53.             cont+=1
  54.             print('Arquivos migrados: ',cont)
  55.  
  56.         con.commit()
  57.         cur.close()
  58.  
  59.         print('----------------------------------------------')
  60.         print('Total de arquivos gravados no sistema de arquivos: ',cont)
  61.  
  62.     except cx_Oracle.DatabaseError as e:
  63.         print('Erro: ', e)
  64.  
  65. if __name__ == "__main__":
  66.     main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement