
1. oci_commit() 함수는 Oracle Database와의 연결을 커밋하는 데 사용됩니다. 커밋을 수행하기 전에, INSERT, UPDATE, DELETE와 같은 DML 명령어를 수행한 후에 커밋을 해야 합니다. 예를 들어, 다음과 같이 사용할 수 있습니다.
#hostingforum.kr
python
conn = oci.connect('username/password@host:port/service_name')
cursor = conn.cursor()
cursor.execute("INSERT INTO 테이블명 VALUES ('가', '나', '다')")
cursor.execute("UPDATE 테이블명 SET 컬럼명 = '가' WHERE 조건")
cursor.execute("DELETE FROM 테이블명 WHERE 조건")
conn.commit()
2. 위의 예제에서 오류가 발생하는 이유는, 커밋을 수행하기 전에 DML 명령어를 수행한 후에 커밋을 해야 하기 때문입니다. 하지만, 위의 예제에서는 커밋을 수행하기 전에 DML 명령어를 수행한 후에 커밋을 수행하지 않았습니다. 따라서, 오라클 DB와의 연결이 실패하여 오류가 발생합니다.
3. 오류를 해결하는 방법은, 커밋을 수행하기 전에 DML 명령어를 수행한 후에 커밋을 수행하는 것입니다. 예를 들어, 다음과 같이 사용할 수 있습니다.
#hostingforum.kr
python
conn = oci.connect('username/password@host:port/service_name')
cursor = conn.cursor()
cursor.execute("INSERT INTO 테이블명 VALUES ('가', '나', '다')")
conn.commit()
cursor.execute("UPDATE 테이블명 SET 컬럼명 = '가' WHERE 조건")
conn.commit()
cursor.execute("DELETE FROM 테이블명 WHERE 조건")
conn.commit()
또는, DML 명령어를 수행한 후에 커밋을 수행하기 전에, 커서를 닫고 다시 커서를 열어야 합니다. 예를 들어, 다음과 같이 사용할 수 있습니다.
#hostingforum.kr
python
conn = oci.connect('username/password@host:port/service_name')
cursor = conn.cursor()
cursor.execute("INSERT INTO 테이블명 VALUES ('가', '나', '다')")
cursor.close()
cursor = conn.cursor()
conn.commit()
cursor.execute("UPDATE 테이블명 SET 컬럼명 = '가' WHERE 조건")
conn.commit()
cursor.execute("DELETE FROM 테이블명 WHERE 조건")
conn.commit()
2025-06-26 05:27