python에서 cx_Oracle 라이브러리 사용해서 오라클 연동 후 사용시 temp table 관련 에러 0 1 6,122

by 아뵹 [DB 기타] Oracle python temporary table [2020.02.28 14:56:44]


 안녕하세요 초보 개발자입니다.

현재 python 에서 cx_oracle 라이브러리 임폴트해서 

오라클 DB에 연동 후에 cur.execute("사용하고자하는 sql") 커맨드로 sql 실행 후에

cur.fetchall() 써서 데이터를 가져온 후에 postgresql에 테이블 생성 후 적재하는 작업을

진행하고 있습니다.

단순한 sql문 (ex. select * from table명)은 잘 동작하는데 문제는 sql 문이 엄청 복잡해졌을 때 인데요 ㅠㅠㅠ

5개 이상의 테이블을 가져와서 지지고볶는 sql문입니다.

해당 sql을 사용하면 꼭 cur.execute(sql) 까지는 잘 동작을 하는데 

cur.fechall()에서 엄청 오랫동안 동작은 하지만 결과가 안나오는 상태로 있다가

"cx_Oracle.DatabaseError: ORA-01652: 128(으)로 테이블 공간 TEMP에서 임시 세그먼트를 확장할 수 없습니다."라는

에러 메세지가 뜨고 동작이 멈추는데요....

템포러리 테이블스페이스를 확장해야 하나 싶다가도 toad에서 위의 복잡한 쿼리를 그대로 돌렸을 때는

잘 동작하기 때문에 무엇이 문제인지 조금 헷갈리는 상황입니다.

.....무엇을 해봐야할까요...? 도와주세요 ㅠㅠㅠㅠㅠ

by 아뵹 [2020.02.28 16:00:16]

SELECT a.username, a.sid, a.serial#, a.osuser, b.tablespace, b.blocks, c.sql_text
FROM v$session a, v$tempseg_usage b, v$sqlarea c
WHERE a.saddr = b.session_addr
AND c.address= a.sql_address
AND c.hash_value = a.sql_hash_value
ORDER BY b.tablespace, b.blocks
/

위의 쿼리로 테이블스페이스 모니터링?을 해보니까 block size 가 

제한해놓은 block size를 초과해서 ORA-01652 에러가 발생하는것 같습니다....근데 toad 에서 바로 실행했을 때는 잘 되는데

왜 python에서 따로 붙어서 할때만 위의 에러가 발생하는 걸까여...? block size가 초과되는 이유는 무엇일까요 ㅎ.....

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입