2016-07-06 3 views
0

오라클 데이터베이스를 사용하여 파이썬에서 여러 번 테이블을 만드는 것을 피하려면 어떻게해야합니까? 함수를 호출 할 때마다 테이블이 이미 존재하므로 테이블 쿼리가 실행되고 데이터가 삽입되지 않습니다.오라클 데이터베이스를 사용하여 파이썬

import cx_Oracle 
import time 

def Database(name,idd,contact): 

    try: 
     con = cx_Oracle.connect('arslanhaider/[email protected]:1521/XE') 

     cur = con.cursor() 
     cur.execute("CREATE TABLE Mazdoor(Name varchar(255),EmpID INT,ContactNo INT)") 
     cur.execute("INSERT INTO Mazdoor VALUES(:1, :2, :3)",(name,idd,contact)) 
     con.commit() 

     cur.execute("SELECT * FROM Mazdoor") 
     data = cur.fetchall() 

     for row in data: 
      print(row) 

    except cx_Oracle.Error: 
     if con: 
      con.rollback() 
    finally: 
     if con: 
      con.close() 

if__name__="__main__" 

while True: 
    n=input("Enter Name::") 
    i=input("Enter Idd::") 
    c=input("Enter Contact No::") 
    Database(n,i,c) 

    time.sleep(3) 

    print("Record Successfully Stored......\n\n") 

답변

1

"분명히, 은 (는 koff,는 koff ...) 당신은 당신이 무엇을하고 있는지 알고 있어야합니다!"

당신이 테이블이 이미있을 수 있음을 사전에 알고 CREATE TABLE에 오라클을 요구하는 경우에

은, 당신의 논리는 적어도이 상황을 처리하기 위해, 여러 적절한 try..except..finally 블록의 사용을 통해 ... 준비를해야합니다.

테이블이 이미 존재하기 때문에 CREATE TABLE 문이 실패하면, 당신은 예외가 던져 질 것이라는 점을 확신 할 수 있습니다, 당신은 관련 except 절에,이, 실제로는 "것을 확인할 수 있습니다 이유." 합리적으로 다음 이 가능성을 무시하고 "군인에."

+0

Thnk u @MikeRobinson –

관련 문제