본문 바로가기

Oracle/운영133

[PL/SQL] 동적 SQL과 정적 SQL로 각각 컬럼 명만 변경하여 수행되는 프로시저 작성 PL/SQL 작성에 대해 문의가 온 내용이 있어서 정리하였습니다.PL/SQL로 프로시저를 수정하는데, SQL의 대부분은 수정하지 않고, 조건에 따라 컬럼하나만 변경되어서 조회가 될 수있게 수정하는 가이드를 줄 수 있냐는 문의였습니다.문의주신 분의 의도는 정적 SQL로 SQL의 변경을 최소화하여 기존과 같은 정적 SQL 형식으로의 가이드를 부탁했지만, 저는 처음에 동적 SQL로 답을 드렸었는데요, 덕분에 동적,정적 SQL 둘다 가이드를 줄 수 있었습니다. 동적 SQL과 정적 SQL에 따라 어떠한 방법으로 작성을 했는지 예시로 만든 프로시저를 통해서 작성해보겠습니다.두개의 프로시저의 성격은 약간 차이가 있습니다. 1.동적 SQL을 사용해서 만든 프로시저는 EMP_COL_TEST의 ENAME,JOB 각각 컬럼.. 2024. 12. 26.
[SGA] library cache lock&pin 발생원인과 재현하기 어제 테이블의 ddl을 수행하려고 보니 (단순 add column) 수행이 끝나지 않고 계속 대기하는 현상이 발생하였습니다. 다른 세션을 열어 세션의 상태를 조회해보니 library cache lock 상태로 wait중이었습니다. 급하게 holder session을 찾아 kill을 하고 처리를 했지만, 정확한 처리방법이 맞는것인지 다시 재현하여 확인할 수 있는 다른 테이블이나 방법은 없는지 정리를 하기로 하였습니다.  library cache 란?라이브러리 캐시는 Shared Pool 내에 위치하며, SQL 공유 커서 및 데이터베이스 오브젝트(테이블,인덱스)에 대한 정보를 관리합니다. 그리고 여기에 저장되는 정보의 단위를 라이브러리 캐시 오브젝트(LCO)라고 부릅니다. SQL 커서 뿐만 아니라 컴파일을 .. 2024. 12. 13.
Lob Partition 의 partition과 lob partition의 default attributes 설정 변경하여 자동으로 추가되는 파티션 압축되게 하기 구문일반 테이블 영역 default attributes 변경 구문ALTER TABLE 테이블명 MODIFY DEFAULT ATTRIBUTES COMPRESS 압축옵션;lob 테이블 영역 default attributes 변경 구문ALTER TABLE 테이블명 MODIFY DEFAULT ATTRIBUTES LOB(LOB 컬럼명) (COMPRESS 압축옵션); 테스트를 위해 CLOB이 포함된 테이블 하나를 생성하고 옵션 설정 전/후를 비교하여 추가된 파티션이 압축옵션을 가지고 있는지 테스트해보겠습니다. 1.테스트테이블 생성CREATE TABLE LOB_PART_TEST (ID VARCHAR2(10) NOT NULL,NAME VARCHAR2(10) NOT NULL,MSG CLOB,SEQ NUMBER)TABLE.. 2024. 11. 22.
[23ai] ai벡터검색 - ChatGPT를 이용하여 실시간 응답을 받기(RAG) 실제 AI API 를 이용해서 23ai에서 PL/SQL로 질의시 답변을 받아오는 방법을 테스트해보고 정리해보았습니다.AI는 여러회사의 제품이 있지만 저는 openai의 chatgpt를 사용하였습니다. 사전준비사항으로 api를 사용하기 위해 api key를 받아와야하고, 이것은 무료가 아니고 최소 10$ 가 필요합니다.openai에서 api key를 받아오고 사용하는 방법부터 정리하겠습니다. 1) api key 받기아래 URL로 접속합니다.https://platform.openai.com/settings/organization/api-keys  +create new secret key를 클릭합니다. Name과 Project를 입력 후 Create secret key를 하면 키가 나옵니다. 키는 암호화 형식.. 2024. 11. 15.