분류 전체보기 1122

오라클 Stored Procedure에서 파라미터 기반 동적 WHERE 조건, 필드, JOIN 제어 방법

소개오라클 데이터베이스에서 Stored Procedure(SP)를 사용하면 복잡한 비즈니스 로직을 효율적으로 처리할 수 있습니다. 특히, 입력 파라미터에 따라 WHERE 조건, 선택 필드, 또는 JOIN 여부를 동적으로 제어하는 기능은 데이터 조회의 유연성을 크게 향상시킵니다. 이 글에서는 오라클 Stored Procedure에서 파라미터 값을 기반으로 동적 쿼리를 작성하는 방법을 자세히 설명합니다. 동적 SQL의 기본 개념부터 실제 예제, 그리고 주의점까지 다루겠습니다.동적 쿼리의 필요성일반적으로 쿼리는 고정된 형태로 작성됩니다. 하지만 실무에서는 사용자가 입력한 조건에 따라 쿼리의 구조가 달라져야 하는 경우가 많습니다. 예를 들어:특정 조건이 있을 때만 WHERE 절에 조건 추가특정 파라미터 값에 따..

Vue 3에서 팝업에서 데이터 가져와 자식 1-1에 표시하기

이 글에서는 Vue 3의 Composition API와 TypeScript를 사용하여 자식 2(팝업)에서 입력된 name과 type 데이터를 가져와 자식 1-1에 표시하는 방법을 설명합니다. 이전 예제를 수정하여 자식 2에서 데이터를 입력하고, 이를 부모를 통해 자식 1-1로 전달하는 흐름을 다룹니다.1. 프로젝트 설정Vue 3와 TypeScript로 구성된 프로젝트를 가정합니다. Vite로 설정된 프로젝트를 사용하는 경우, 설정 명령어는 다음과 같습니다: npm create vite@latest my-vue-app -- --template vue-tscd my-vue-appnpm installnpm run dev2. 컴포넌트 구조컴포넌트 구조는 다음과 같습니다:Parent.vue: 부모 컴포넌트로, 자..

Vue 3에서 자식 컴포넌트 간 팝업 호출 구현하기

Vue 3에서 Composition API와 TypeScript를 사용하여 부모 컴포넌트 아래 자식 컴포넌트 간의 통신을 구현하는 방법을 알아보겠습니다. 이 글에서는 부모 컴포넌트에 자식 1과 자식 2가 있고, 자식 1에서 자식 2(팝업)를 호출하는 예제를 다룹니다. 코드와 함께 단계별로 설명하겠습니다.1. 프로젝트 설정먼저, Vue 3 프로젝트를 TypeScript로 설정합니다. Vite를 사용하여 프로젝트를 생성하는 명령어는 다음과 같습니다:npm create vite@latest my-vue-app -- --template vue-tscd my-vue-appnpm installnpm run dev프로젝트가 준비되었다면, 이제 컴포넌트를 구성해 보겠습니다.2. 컴포넌트 구조아래와 같은 컴포넌트 구조를..

MyBatis에서 숫자 포함 Oracle 컬럼명 매핑 문제 해결하기

문제: 숫자 뒤 언더스코어 컬럼명 매핑 실패Oracle 데이터베이스에서 컬럼명 CNT_100_SM을 Java MyBatis 프로젝트에서 카멜 케이스(cnt100Sm)로 매핑하려 했지만, 유독 숫자(예: 100) 뒤에 언더스코어(_)가 붙은 경우 매핑이 제대로 되지 않는 문제가 발생했습니다. 예를 들어, CNT_100_SM은 cnt100Sm으로 변환되어야 하지만, MyBatis가 이를 인식하지 못하거나 잘못된 필드에 매핑되는 경우가 있었습니다. 이로 인해 부득이하게 컬럼명을 CNT100_SM처럼 변경해 사용하는 불편함을 겪었습니다.이 글에서는 이 문제의 원인을 분석하고, MyBatis에서 숫자 포함 컬럼명을 깔끔하게 처리하는 방법을 정리합니다.원인 분석MyBatis는 데이터베이스 컬럼명(스네이크 케이스)과..

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

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

PocketFlow-Tutorial-Codebase-Knowledge 프로젝트

코드베이스의 복잡함을 단순화하다새로운 프로젝트에 합류하거나 오픈소스 코드베이스를 탐색할 때, 수백 개의 파일과 복잡한 구조에 압도당한 경험이 있으신가요? The-Pocket의 PocketFlow-Tutorial-Codebase-Knowledge 프로젝트는 이러한 문제를 해결하기 위해 설계된 혁신적인 AI 기반 도구입니다. 이 프로젝트는 GitHub 레포지토리나 로컬 디렉토리의 코드를 분석하여 초보자도 이해할 수 있는 친화적인 튜토리얼을 자동으로 생성합니다. 이 블로그 포스트에서는 이 프로젝트의 주요 기능, 작동 방식, 그리고 개발자에게 미치는 영향을 자세히 살펴보겠습니다.PocketFlow-Tutorial-Codebase-Knowledge란?PocketFlow-Tutorial-Codebase-Knowle..

카테고리 없음 2025.05.11

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 처리: 여..