본문 바로가기

전체 글14

MariaDB || SP 내에서 타 SP 호출 방법 [목차] 프로시저 내에서 다른 프로시저를 호출하는 방법은 간단하며, 단순히 CALL 프로시저명(파라미터); 하면 호출이 된다. [그림1] SP 내에서 다른 SP의 호출 여기서 중요한 점은 호출하는 상위 SP(호출자, caller)와 호출 당하는 하위 SP(피호출자, callee) 사이의 데이터 전달 및 에러 처리 방식에 대하여 어떻게 할 것인가 이다. 상위 SP는 외부 Application(예를들어 WAS)에게 데이터를 SELECT구문을 통한 Recordset[n] 형태로 전달해야 하는 경우, 해당 상위 SP를 Wrapping 하는 API용 SP를 만들어야 할 수도 있다. 왜냐하면 SP에서 SELECT 구문에 의한 Recordset[n] 형태의 반환 결과는 다른 SP에서 호출하여 사용할 방법이 없기 때문.. 2022. 11. 13.
MariaDB || 커서를 이용한 Loop의 사용 (명시적 커서의 사용) [목차] MariaDB에서 커서를 이용한 Loop의 사용시에 Oracle과는 다르게 아쉽지만 현재까지는 명시적 커서만 지원되는듯 하다. 커서를 이용한 Loop문은 아래 [그림1]과 같이 크게 (1)Loop용 변수 선언, (2)커서의 선언, (3)NOT FOUND 핸들러 선언, (4)Loop 구문으로 구성된다. Loop 구문은 “커서 OPEN” -> Loop body 내에서 “커서 FETCH” -> “커서 CLOSE”로 세부 구성된다. [그림1] LOOP 문의 구성 (1) Loop용 변수 선언 상황에 따라 다르긴 하지만 주로 다음과 같은 변수를 선언하여 사용한다. 커서로부터 fetch한 데이터가 더이상 존재하지 않아 not found 이벤트가 발생될 때, 이에대한 핸들링 처리를 위한 변수 (true/fal.. 2022. 11. 7.
MariaDB || Stored Procedure(SP) 및 Function(FN)의 기본 구조 [목차] MariaDB는 Oracle의 BEGIN~EXCEPTION~END와 MS-SQL의 TRY~CATCH Block 구조와는 다르게 예외 처리에 대한 부분이 상단부에 위치해 있으며 사용에 약간 불편함(?)이 따르는 구조로 되어 있다. 주요 구조는 과 같이 정의 영역과 프로그램 영역으로 크게 나눌수 있으며, 작성하는 사람마다 다르겠지만 개인적으로는 프로그래밍 영역을 세부적으로 구분한다면 프로그램의 설명을 위한 주석 영역과 일반변수 및 커서를 정의하는 변수 정의 영역, 예외 처리를 위한 예외 정의 영역, 로직 등을 구현하는 프로그래밍 영역 등으로 구분할 수 있다. 프로시저는 자제적으로 사용되기 보다는 외부 어플리케이션 등과 연계하여 활용되는 경우가 대부분이므로, 트랜젝션의 관리는 프로시저를 호출하는 외부.. 2022. 11. 3.
MariaDB || Stored Procedure의 활용 MariaDB와 관련하여 Stored Procedure (뭐 MariaDB에서는 Stored Routines이라고 한다.)를 사용하는 개발 현장에서 활용할 수 있는 내용들을 정리하고자 한다. 개략적인 목차는 다음과 같다. (목차 및 내용은 지속적으로 추가/수정 작업을 진행할 예정이다.) 1. Stored Procedure (SP) 및 Function (FN)의 기본구조 2. 커서를 이용한 Loop 사용 (명시적 cursor의 사용) 3. SP 내에서 타 SP 호출 방법 4. JSON Data의 사용 (SP, FN에서의 Table 데이터 형식의 I/O 활용) 5. SP, FN용 에러 테이블의 사용 (non-transaction-safe 테이블의 활용: MyISAM, ARIA storage engine) :.. 2022. 11. 1.
Oracle 올림(절상) 처리(RoundUp) 함수 오라클에서 일반적인 정수 올림 처리함수는 CEIL을 사용한다. 그렇다면 소수 자릿수의 올림 처리함수는 다음의 함수를 구현하여 사용한다. create or replace function FN_ROUNDUP (in_left in number, in_right in integer default 0) return number is v_right integer; v_temp_num number; v_add_num number; v_rlt number; begin /* 사용처 : 공통 제 목 : 입력 값의 올림 처리 내 용 : 소수 자릿수에 의한 입력 값의 올림 처리 함수 ------------------------------------------------------------ 인자명 : 설명(인자값 예) in_.. 2018. 6. 27.
Linux에 ASP.NET Core 사이트의 배포: Nginx의 이용 L사 프로젝트 진행중 틈나는 시간에 삽질해보며 작성중이라 상세하게 내용을 적을수는 없으나, 최대한 내용을 적어보도록 하겠다. 아래에서 설명하고자 하는 Linux OS는 CentOS 7.x 기준으로 설명한다. (MS의 ASP.NET Core 사이트에서는 Debian 계열의 Linux로 설명을 하고 있으나, 소속 회사에서 Linux OS는 CentOS를 주로 사용하고 있어 해당 OS를 먼저 살펴보았다.) MS의 ASP.NET Core Documentation 사이트에서는 Reverse-proxy를 지원하는 Nginx (엔진X 라고 불리는) 웹서버와 ASP.NET Core 자체적으로 가지고 있는 Kestrel 웹서버, 그리고 Kestrel Process를 모니터링하고 boot 시 start, restart 등.. 2016. 9. 26.