일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 영어유머
- 영어 유머
- 심플한 게임
- 롤
- 여행
- 영어공부
- 영어독해
- MLBB
- Chess-TD
- oracle
- 골든게이트
- Mobile Legends
- 관광
- 독해연습
- 모바일레전드
- 가볼만한곳
- 체스-TD
- 이솝우화
- java program
- 오큘러스
- 오라클
- English Joke
- Imba Auto Chess
- 게임기
- english study
- 임바 오토체스
- 왕좌의게임
- 게임
- OGGMA
- Python
- Today
- Total
목록Python (10)
Almost-Native

Python 설치툴 pip 로 oracledb 를 설치하다가 아래와 같은 에러를 만났습니다. 보통 이런 경우 최신 버전의 pip 를 사용하면 에러가 안납니다. 앞에서 사용한 pip3 는 버전이 pip 9.0.3 버전입니다. 아래와 같이 pip3.9 (20.2.4) 버전으로 사용할때는 install 이 잘 되는것을 확인할 수 있습니다. pip3.9 를 사용했기 때문에 python 도 같은 버전을 사용해줘야 합니다. python3.9 를 사용하면 설치된 oracledb 라이브러리를 제대로 사용할 수 있습니다.

Python 설치툴 pip 로 설치작업 할때 아래와같이 Cache entry deserialization failed, entry ignored 메시지가 나오는 경우가 있습니다. 이 경고 메시지를 없애려면, pip install 실행할 때, --no-cache-dir 옵션을 주어서 하면 됩니다. 캐시때문에 에러가 났으니 캐시를 안쓰겠다는 옵션을 주어서 해결한 것인데.... 원인은 python 또는 pip 버전과 관계가 있다고 합니다. 최신 버전의 pip 를 사용하면 에러가 안납니다. 리눅스 시스템에 python 이나 pip 가 한개의 버전만 설치되어 있을거라고 생각하는 경우가 많은데, 실제로 보면 아래와 같이 많은 버전이 깔려있는 경우가 있습니다. /usr/bin 디렉토리에서 ls -l pip* 커맨드로..
Oracle DB 에 접속하는 파이썬 프로그램을 실행시 아래와 같은 에러가 발생하는 경우, $ /usr/bin/python3.9 aaa1.py Traceback (most recent call last): File "/home/oracle/Python1/aaa1.py", line 5, in oracledb.init_oracle_client() File "src/oracledb/impl/thick/utils.pyx", line 478, in oracledb.thick_impl.init_oracle_client File "src/oracledb/impl/thick/utils.pyx", line 400, in oracledb.thick_impl._raise_from_info oracledb.exceptions..

DRCP (Database Resident Connection Pooling) 기능은 오라클 데이터베이스에 접속하는 프로그램들을 위한 커넥션 공유풀을 만들어서 공동사용하게 함으로써 DB서버의 자원 사용을 절약하는 기능입니다. 만약 1000개의 프로세스가 DB접속해야 하는 경우, 기본적으로 오라클은 1000개의 클라이언트 처리요청을 지원하기 위해 1000개의 Dedicated Server Process 를 기동합니다. 동시 접속이 많은 경우 DB 서버의 자원이 금방 고갈될 수 밖에 없습니다. 이런 것을 해결하기 위해 보통은 WAS (Web Application Server) 차원에서 커넥션풀을 만들어서 DB접속풀 공유하면서 사용하는 것이 일반적입니다. 하지만, WAS 를 사용하지 않는 경우에는 DB 차원에..

Python 프로그램에서 Oracle Database 에 접속해서 DB 작업을 할 수 있도록 도와주는 라이브러리에 cx_Oracle 과 python-oracledb 가 있습니다. 서로 다른 것은 아니고, 원래 있던 cx_Oracle 이 버전업을 하면서 이름을 python-oracledb 라고 바꾼것입니다. 즉, 라이브러리명이 바뀌면서 기능이 좀 추가된 형태라고 보면 됩니다. 따라서, 라이브러리에서 제공하는 함수들의 이름이나 기본적인 사용방법은 거의 그대로이거나 약간씩 다른 부분이 있는 정도 입니다. python-oracledb 로 가면서 가장 크게 바뀐 부분은 "thin 모드" 와 "thick 모드"가 생겼다는 점 입니다. thin 모드 / thick 모드 의 차이는 Oracle Client 를 사용하느..

이전 페이지에서 파이썬 python-oracledb 라이브러리를 이용해서 BLOB 데이터를 오라클DB에 Insert 하고, Select 하는 프로그램을 만들어 봤습니다. 앞에서는 156MB 크기의 동영상 파일을 가지고 테스트했는데, 이 파일의 크기가 1GB 가 넘어가면 이런 방식으로 할 수가 없습니다. 파일크기가 1GB 이상인 경우에는 한번에 처리할 수 없기 때문에 잘라서 등록하고, 조회할 때도 잘라서 조회해야 합니다. 자르지 않고 한번에 처리할려고 하는 경우, 아래와 같은 에러가 발생합니다. oracledb.exceptions.DatabaseError: DPI-1057: buffer size of 1710915901 is too large (max 1073741822) 자르는 단위를 chunk 라고 합..

Phyton 에서 python-oracledb 라이브러리를 이용해서 BLOB 데이터를 등록(Insert) 하고, 조회(Select) 하는 샘플 프로그램입니다. Oracle DB 에서 BLOB 데이터 타입은 이미지, 동영상 등의 Binary Data 를 저장할 때 사용됩니다. 테스트를 위해 아래와 같이 오라클DB 에 미리 BLOB_TBL 이라는 테이블을 만들어두었습니다. BLOB_TBL 테이블의 BB 컬럼에 156MB.mov 동영상 파일을 Insert 한후, 이를 다시 Select 하여 156MB_output.mov 동영상 파일로 출력하겠습니다. 파이썬 소스코드는 아래와 같습니다. import oracledb # create table BLOB_TBL ( id NUMBER, bb BLOB ) lob (bb..

이전 페이지에서 파이썬 cx_Oracle 라이브러리를 이용해서 BLOB 데이터를 오라클DB에 Insert 하고, Select 하는 프로그램을 만들어 봤습니다. 앞에서는 156MB 크기의 동영상 파일을 가지고 테스트했는데, 이 파일의 크기가 1GB 가 넘어가면 이런 방식으로 할 수가 없습니다. 파일크기가 1GB 이상인 경우에는 한번에 처리할 수 없기 때문에 잘라서 등록하고, 조회할 때도 잘라서 조회해야 합니다. 자르지 않고 한번에 처리할려고 하는 경우, 아래와 같은 에러가 발생합니다. cx_Oracle.DatabaseError: DPI-1057: buffer size of 1710915901 is too large (max 1073741822) 자르는 단위를 chunk 라고 합니다. 이번 실습에서는 1.6..