반응형
반응형
테이블의 특정 행의 모든 데이터를 프로시저에 넣어야 할 때가 있습니다. 이 포스팅은 하나의 컬럼당 하나의 변수로 일일이 담기에는 귀찮고 테이블 자체를 통으로 넘겨버리고 싶을 때의 방법입니다.테이블 형식의 타입 정의프로시저에 넘겨주는 매개변수와 넘겨받는 매개변수는 테이블 형식을 가져야 합니다. 아래는 간단히 id, name, address 의 컬럼을 가지는 테이블 형식의 타입을 정의하도록 하겠습니다.-- 테이블 형식 타입 정의 CREATE TYPE testTableType AS TABLE ( id int, -- 컬럼 : id name nvarchar(50), -- 컬럼 : 이름 address nvarchar(50) -- 컬럼 : 주소 -- 원하는 컬럼 추가 )테이블 자체를 매개변수로 받을 프로시저 정의위에..
이번 포스팅에서는 nativeQuery로 프로시저를 사용하는 것이 아닌, 직접 프로시저 실행하는 명령어를 이용하여 프로시저를 사용합니다. 예제 파일은 깃허브에서 다운로드 가능합니다. https://github.com/luvris2/spring-boot-jap-stored-procedure-query GitHub - luvris2/spring-boot-jap-stored-procedure-query Contribute to luvris2/spring-boot-jap-stored-procedure-query development by creating an account on GitHub. github.com 사용 환경 IDE : IntelliJ Java : Open JDK 17 Project : Grade ..
함수와 프로시저의 차이 함수(Function) 프로시저(Procedure) 데이터베이스에서 비즈니스 로직을 캡슐화하는데 사용 용도(Use) SELECT문, JOIN절 또는 하위 쿼리에서 사용 가능 명시적으로 호출해야만 실행 가능 반환 값(Return Value) 반드시 값 반환해야 함 값을 반환하지 않아도 됨, 대신 SQL문을 통해 여러 결과 집합을 반환하는 데이터를 조작 할 수 있음 정의 (Defined) 주어진 입력을 사용하여 결과를 계산하는 데 사용 특정 작업을 순차적으로 수행하는 데 사용 입력/출력 파라미터 (In/Out Parameter) 입력 매개 변수와 반환 출력 매개 변수 허용 입력 및 출력 매개 변수 허용 호출 (Call) 함수 내에서 프로시저 호출 불가능, 호출될 때마다 컴파일 진행 프..
whileMySQL에서 반복문(while)은 프로시저 내에서 사용 가능그렇기 때문에 while을 사용하기 위해서는 프로시저를 정의하여야 함이 포스팅에서는 while문의 사용 방법을 목적으로 작성하였으므로 프로시저 관련 설명은 생략MySQL 프로시저 관련 포스팅 보러가기구문선언WHILE (조건) DO : 조건은 Ture/False의 값이 나오는 조건이여야 함종료END WHILE; : WHILE문의 종료, 반드시 뒤에 세미콜론을 붙여야 함WHILE (조건) DO // codeEND WHILE;사용 예시숫자 1에 +1씩 5번을 반복한 값 출력 (숫자 6 출력)DELIMITER $$CREATE PROCEDURE loopWhile()BEGIN DECLARE i INT DEFAULT 1; WHILE..
INPUT : 입력 매개변수 변수 선언시 디폴트 값 입력한 값을 프로시저 내에서 사용 할 수 있게 해주는 변수 입력 매개변수 구문 기존의 프로시저 생성 구문과 같음 IN 키워드를 생략해도 기본 값은 IN이기 때문에 상관 없음 CREATE PROCEDURE -- 프로시저명 -- @매개변수 데이터타입 IN AS BEGIN -- SQL문 END 입력 매개변수 사용 예시 이름이 사라인 애완동물의 나이 확인하기 이름 : 입력 매개변수 (inVar) 나이 : 쿼리 실행 결과 (select ~) -- 기본 테이블 정보 확인 select * from MyPet -- 프로시저 생성 CREATE PROC inVarTest -- 입력 매개변수 선언, 사용자로부터 값을 입력 받는 변수, IN 생략 가능 @inVar nvarc..