티스토리 뷰

프로시저는 프로그램의 함수와 같은 개념으로 SQL명령어의 조합으로 새로운 함수를

만들어 저장 해 놓고 사용하는 것이다.

 

 

 

> 삭제

DROP PROCEDURE IF EXISTS INSERT_BOARD;

 //프로시저를 생성하기 전에  INSERT_BOARD라는 프로시저가 있으면 삭제한다.

 

 

 

> 생성

CREATE PROCEDURE INSERT_BOARD(PREGION INT(11), PWRITER VARCHAR(30), PTITLE VARCHAR(200))
  BEGIN
      INSERT INTO BOARD(REGION, WRITER, TITLE) VALUES (PREGION,PWRITER,PTITLE);
  END;

 //보라색의 PREGION, PWRITER 등의 변수는 외부에서 함수를 호출할 때 넣어줄 인자의 타입을 결정 하는 것이기도 하고, BEGIN과 END사이에서 유효한 값이다.

 

 

> 호출
CALL INSERT_BOARD(1,'춘이춘이','춘이춘이');

 //디비 사용자가 ROOT가 아니라면 GRANT권한 설정을 해줘야 EXECUTE가 가능하다.

 

 

 

 

 

 

out파라미터 select하기

프로시저 함수의 인자 값으로 inout이 있는데, in은 프로시져 안에서 작업할 변수, out은 프로시저 밖에서 select로 호출하기 위한 출력용 변수 인 듯하다.

 

> 생성

DELIMITER $$
CREATE PROCEDURE make_seq(in board_no VARCHAR(20), out result_value varchar(20))
BEGIN
    SET result_value = (SELECT SUBSTRING(board_no, INSTR(board_no, '_')+1) AS board_no FROM DUAL);
END $$
DELIMITER ;

 

> 호출
CALL make_seq('SDADS_111', @result_value);

 

> 출력

SELECT @result_value;

 

Comments
최근에 올라온 글
최근에 달린 댓글
TAG
more
Total
Today
Yesterday