OracleDB 9

오라클 저장 프로시저 내부 오류 캡처 및 Python oracledb로 애플리케이션 레벨 오류 처리 방법

오라클 데이터베이스의 저장 프로시저(Stored Procedure, SP)에서 발생하는 내부 오류를 상세히 파악하고, Python의 oracledb 모듈을 사용해 애플리케이션 레벨에서 이를 효과적으로 캡처하는 방법을 설명합니다. 이 글은 오라클 PL/SQL과 Python 개발자를 위해 실용적인 예제와 함께 오류 처리 기법을 다룹니다.1. 오라클 저장 프로시저에서 내부 오류 캡처오라클 저장 프로시저에서 오류를 캡처하려면 PL/SQL의 **예외 처리 블록(EXCEPTION)**을 사용합니다. 이를 통해 오류 코드(SQLCODE)와 오류 메시지(SQLERRM)를 기록하거나 호출한 애플리케이션으로 전달할 수 있습니다.예제: 오류 로깅 테이블에 기록 CREATE TABLE ERROR_LOG ( ERROR_C..

오라클 프로시저 파라미터 정보 조회하는 파이썬 코드 (oracledb 사용)

오라클 데이터베이스에서 프로시저(Procedure)의 파라미터 정보를 조회하는 것은 DBA나 개발자에게 유용한 작업입니다. 특정 프로시저의 파라미터 이름, 데이터 타입, 입력/출력 여부를 확인해야 할 때가 많죠. 이번 글에서는 Python의 oracledb 라이브러리를 사용해 오라클 프로시저의 파라미터 정보를 조회하는 코드를 작성해 보겠습니다. 이 코드는 프로시저 이름을 입력받아 해당 파라미터 정보를 반환하는 간단한 스크립트입니다.준비물Python 환경: Python 3.6 이상oracledb 라이브러리: 설치가 필요합니다. 아래 명령어로 설치하세요.bash pip install oracledb오라클 데이터베이스 접속 정보: 사용자 이름, 비밀번호, DSN(데이터 소스 이름)이 필요합니다.오라클 DBA ..

Python과 oracledb로 SQL 파일의 Oracle 저장 프로시저 실행하기

오라클 데이터베이스에서 저장 프로시저를 관리하다 보면, 특정 디렉토리 내의 SQL 파일을 자동으로 실행해야 할 때가 있습니다. 이 블로그에서는 oracledb 라이브러리와 Python을 사용해, 특정 경로와 그 하위 디렉토리를 순회하며 CREATE OR REPLACE PROCEDURE로 시작하는 SQL 파일을 실행하는 방법을 소개합니다. 이 코드는 기존의 oracle_procedure_util.py 모듈을 기반으로 작성되었으며, 디렉토리 순회와 SQL 실행 로직을 추가했습니다.1. 코드 개요이 Python 스크립트는 다음 기능을 수행합니다:디렉토리 순회: 지정된 경로와 하위 디렉토리를 탐색해 .sql 확장자를 가진 파일을 찾습니다.SQL 파일 필터링: 파일 내용이 CREATE OR REPLACE PROC..

Python에서 Oracle 저장 프로시저의 DBMS_OUTPUT.PUT_LINE 메시지 확인하기

오라클 데이터베이스의 저장 프로시저에서 DBMS_OUTPUT.PUT_LINE으로 출력된 디버깅 메시지를 Python에서 확인하는 방법을 소개합니다. 이 블로그에서는 oracle_procedure_util.py 모듈을 기반으로, DBMS_OUTPUT 메시지를 읽어오는 방법을 단계별로 설명하고, 실제 구현 코드를 제공합니다.1. oracle_procedure_util.py 모듈 개요oracle_procedure_util.py는 오라클 저장 프로시저를 호출하고, 결과를 처리하거나 테스트용 SQL 쿼리를 동적으로 생성하는 유틸리티 모듈입니다. 주요 기능은 다음과 같습니다:저장 프로시저 호출: 오라클 저장 프로시저를 호출해 결과 데이터를 처리합니다.랜덤 데이터 생성: 결과 데이터가 없을 경우, 커서 메타데이터를 ..

Oracle DB에서 저장 프로시저 호출 및 동적 데이터 처리 방법

Oracle 데이터베이스에서 저장 프로시저를 호출하고, 결과가 없을 경우 동적으로 대체 데이터를 생성하는 방법을 소개합니다. 이 글에서는 Python의 oracledb 모듈을 활용해 저장 프로시저를 호출하고, 결과 데이터를 분석하며, 필요 시 랜덤 데이터를 생성해 쿼리를 실행하는 과정을 세련되게 정리했습니다. 초보자부터 숙련자까지 참고할 수 있도록 코드와 출력 예시를 포함했습니다.1. Oracle DB 연결 및 저장 프로시저 호출먼저, Oracle DB에 연결하고 저장 프로시저를 호출하는 기본 구조를 살펴보겠습니다. 아래 코드는 oracledb 모듈을 사용해 DB에 연결하고, 특정 저장 프로시저(NEXTPOT.STP_STK_050101_LST_01)를 호출합니다. CREATE OR REPLACE PRO..

파이썬으로 오라클 스토어드 프로시저 실행하기: 다중 IN/OUT 파라미터와 커서 열 타입 출력 (0개 행 포함)

오라클 스토어드 프로시저에서 SYS_REFCURSOR로 반환되는 emp_names가 0개 행을 반환하더라도, 반환되는 열(first_name, last_name, age)의 데이터 타입(예: VARCHAR2, DECIMAL)을 출력하는 방법을 구현하겠습니다. 이를 위해 oracledb의 커서 객체에서 열 메타데이터를 추출하여 각 열의 데이터 타입을 확인합니다. 또한, 다중 IN/OUT 파라미터를 처리하고, 모든 파라미터의 값, 길이, 타입을 출력합니다. 핵심 아이디어SQL 파일 읽기: 스토어드 프로시저의 SQL 코드가 담긴 파일을 읽어옵니다.데이터베이스 연결: oracledb로 오라클 데이터베이스에 연결합니다.스토어드 프로시저 실행: SQL 코드를 실행해 프로시저를 생성합니다.다중 IN/OUT 처리: 여..

Oracle DB Context MCP Server와 Vuetify로 동적 CRUD 화면 구현하기

Oracle DB Context MCP Server를 사용하여 특정 오라클 데이터베이스 테이블의 스키마 정보를 가져오고, 이를 기반으로 Vuetify를 활용해 CRUD(Create, Read, Update, Delete) 화면을 동적으로 생성하는 예제. 아래에서는 Oracle DB Context MCP Server를 통해 테이블 스키마를 조회하고, Vue.js와 Vuetify를 사용하여 해당 테이블에 대한 CRUD 인터페이스를 생성하는 예제를 단계별로 설명합니다.전제 조건Oracle DB Context MCP Server:설치 및 설정 완료 (.env 파일에 오라클 접속 정보 포함).실행 명령: uv run main.pyMCP 서버가 테이블 스키마 조회 및 데이터 질의를 지원한다고 가정.필요 패키지:Ba..

Nuxt.js로 오라클 debug_log 테이블 실시간 모니터링 구현하기

오라클 데이터베이스의 debug_log 테이블에 데이터가 삽입될 때마다 실시간으로 화면에 태그로 표시되도록 Nuxt.js 애플리케이션을 구현해보겠습니다. 이를 위해 서버에서 주기적으로 데이터를 폴링(polling)하거나, 가능하다면 웹소켓(WebSocket)을 사용해 실시간 업데이트를 처리할 수 있습니다. 여기서는 간단한 폴링 방식과 Nuxt 3를 활용한 예제를 블로그 형식으로 정리하겠습니다.  2025.03.17 - [Oracle Database 강좌] - 오라클에서 디버깅 로그를 테이블에 저장하기: 프로시저명과 라인 번호 추가  목표debug_log 테이블에 데이터가 추가될 때마다 Nuxt.js 페이지에서 실시간으로 테이블에 반영.주기적인 API 호출을 통해 데이터를 가져오고, 로 렌더링.간단한 U..

Nuxt.js에서 defineEventHandler로 Oracle DB 데이터 조회하기

Nuxt.js의 서버 핸들러(defineEventHandler)를 사용해 Oracle 데이터베이스에서 SELECT 쿼리를 실행하고, 그 결과를 클라이언트로 반환하는 방법을 알아보겠습니다. Oracle DB는 강력한 엔터프라이즈 데이터베이스인데, Node.js 환경에서 oracledb 모듈을 활용하면 쉽게 연결할 수 있습니다. 단계별로 상세히 다뤄볼게요!1. 사전 준비: Oracle DB와 Nuxt 환경 설정Oracle 데이터베이스에서 데이터를 조회하려면 몇 가지 준비가 필요합니다.1.1. 프로젝트 환경Nuxt 3 프로젝트가 이미 설정되어 있다고 가정합니다. server/api 디렉토리에서 서버 핸들러를 작성할 예정입니다: my-nuxt-project/├── server/│ └── api/│ ..