Python 읽 기와 쓰기 및 백업 Oacle 데이터베이스 작업 예제

이 실례 는 Python 읽 기와 쓰기 및 백업 oracle 데이터베이스 작업 을 설명 한다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
최근 프로젝트 에 서 는 Python 을 사용 하여 Oacle 을 호출 하여 읽 기와 쓰기 작업 을 실현 하고 많은 구 덩이 를 밟 아 힘 들 게 이 루어 졌 습 니 다.성능 이 어떤 지 는 먼저 말 하지 않 고,방법 이 있 으 면 나중에 조절 하 자.지금 코드 와 주의 점 을 기록 하 세 요.
1.필요 한 Python 도구 모음
cx_Oracle,pandas,콘 솔 을 통 해 사용 할 수 있 습 니 다pip설치(컴퓨터 에 설치 되 어 있 음)

2.조회 조작 실현

#     
import pandas as pd
import cx_Oracle
#  :        ,            
import os
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
#       dataframe
def query(table)
  host = "127.0.0.1"  #   ip
  port = "1521"   #  
  sid = "test"  #     
  dsn = cx_Oracle.makedsn(host, port, sid)
  #scott      ,tiger     (        )
  conn = cx_Oracle.connect("scott", "tiger", dsn)
  #SQL  ,    ,      
  sql = 'select * from '+ table
  #   pandas  read_sql  ,          dataframe 
  results = pd.read_sql(sql,conn)
  conn.close
  return results
test_data = query(test_table) #        

3.삽입 작업 실현

#     
import pandas as pd
import cx_Oracle
#      
def input_to_db(data,table):
  host = "127.0.0.1"  #   ip
  port = "1521"   #  
  sid = "test"  #     
  dsn = cx_Oracle.makedsn(host, port, sid)
  #scott      ,tiger     (        )
  conn = cx_Oracle.connect("scott", "tiger", dsn)
  #    
  cursor = connection.cursor()
  #sql  ,  %s    ,    ora-01036  
  query = "INSERT INTO"+table+"(name,gender,age) VALUES ('%s', '%s', '%s')"
  #      
  for i in range(len(data)):
    name= data.ix[i,0]
    gender= data.ix[i,1]
    age= data.ix[i,2]
   #   sql  
    cursor.execute(query % (name,gender,age))
  connection.commit()
  #     
  cursor.close()
  connection.close()
#       
#     
test_data = pd.DataFrame([['  ',' ',18],['  ',' ',18]],index = [1,2],columns=['name','gender','age'])
#        
input_to_db(test_data,test_table1)

4.Python 백업 Oracle 데이터베이스

#!/usr/bin/python
#coding=utf-8
import threading
import os
import time
#   
user = 'username'
#  
passwd = 'password'
#      
savepath = '/home/oracle/orcl_bak/'
#     
tables = ' tables=department,employee'
#    
circle = 2.0
#    
global bak_command
bak_command = 'exp '+user+'/'+passwd + ' file=' + savepath
def orclBak():
  now = time.strftime('%Y-%m-%d %H:%M:%S')
  command = bak_command + now + '.dmp' + tables
  print command
  if os.system(command) == 0:
    print '    '
  else:
    print '    '
  global t
  t = threading.Timer(circle, orclBak)
  t.start()
t = threading.Timer(circle, orclBak)
t.start()

더 많은 Python 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.,,,,,,,,,,,,
본 논문 에서 말 한 것 이 여러분 의 Python 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기