2011-03-18 8 views
1

데이터베이스 정보를 업데이트해야하는 python 스크립트가 있습니다. 그래서, init() 메소드에서 연결을 시작합니다. 하지만 업데이트 메서드를 호출하면 스크립트가 나에게 어떤 대답도주지 않습니다. 마치 무한 루프에있는 것처럼 처럼 보입니다.왜 내 SQL이 실행되지 않습니까?

def update(self,id,newDescription): 
    try: 
     sql="""UPDATE table SET table.new_string=:1 WHERE table.id=:2"""                    
     con=self.connection.cursor() 
     con.execute(sql,(newDescription,id)) 
     con.close() 
    except Exception,e: 
     self.errors+=[str(e)] 

는 지금까지 시도했다 : 연결이 괜찮아 경우

  • 변경 쿼리, 그냥 볼 수 있습니다. (테이블에서 SELECT 정보를 사용했습니다.) 스크립트가 작동했습니다.
  • 내 쿼리가 잘못되었다고 생각했지만 SQLDeveloper 프로그램에서 실행하면 올바르게 처리됩니다.

어떤 일이 벌어 질 수 있습니까?

감사

+0

먼저 예외가 있는지 확인 했습니까? –

+0

예. 예외 없음. –

답변

2

당신은 commit 전화를 잊고있다.

+0

스크립트는 con.execute 행에서 중지합니다. –

+3

자물쇠에 매달려있을 수 있습니까? –

+0

완벽하게 작동합니다. –

1

python 스크립트에서이를 수행하는 방법에 대해서는 잘 모르겠지만 연결을 닫기 전에 "commit"을 호출해야한다고 생각합니다. 그렇지 않으면 oracle이 트랜잭션을 롤백합니다.

닫기() 전에 con.commit()을 추가하십시오.

관련 문제