마리아 디비에 대해서 아시는 분 답변좀 부탁드립니다. 0 3 3,757

by 준일정 [DB 기타] mariadb [2018.09.03 23:27:46]


mssql은 저장 프로시저 

 

oracle은 pl/sql 이 있으면

 

마리아 db는 어떤걸 사용하나요?

 

제가 주력 sql이 mssql이라서 혹시 mssql과 비슷하려나요?

by 야신 [2018.09.04 08:12:49]

마리오db도 프로시저 만들수 있습니다.

구글에서 mariadb procedure 라고 검색해 보세요

 


제목: PROCEDURE 예제

DELIMETER ;;

CREATE DEFINER=`root`@`localhost` PROCEDURE `prc_insert_emp`(
        OUT `O_RESULT` INT,
        OUT `O_MESSAGE` TEXT,
        IN `P_EMPNO` INT


)
LANGUAGE SQL
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT ''
BEGIN
 
  DECLARE v_step VARCHAR(200);  -- 진행단계 변수 선언. 기본값은 NULL
  DECLARE v_cnt INT;            -- 처리건수 변수 선언
  DECLARE v_cnt2, v_cnt3 INT DEFAULT 0;    -- 처리건수  여러개의 변수를 사용하는 예제  
  DECLARE v_empno INT DEFAULT P_EMPNO;  -- 입력받은 파라미터를 변수에 할당하여 사용
  
  DECLARE EXIT HANDLER FOR SQLEXCEPTION
  BEGIN     
    GET DIAGNOSTICS CONDITION 1 
    @sql_state = RETURNED_SQLSTATE, 
    @sql_errno = MYSQL_ERRNO, 
    @sql_msg   = MESSAGE_TEXT;
  
    ROLLBACK;                      -- 트랜잭션 실패시 롤백
    
    SET O_RESULT = 1;              -- 결과는 OUT 파라미터로 내보냄. 프로시저 호출후 세션파라미터로도 가능
    SET O_MESSAGE = concat_ws(' : ',v_step,@sql_msg); -- 어느 단계에서 발생했는지 확인하기 위해 v_step 추가
    SELECT O_RESULT, O_MESSAGE;  -- 프로시저 에러 출력
    
  END;
  
  SET v_step = '1.1 start ';  -- v_step 에 진행단계 입력
  SET v_cnt2 =1, v_cnt3 = 1;    -- 처리건수  여러개의 변수에 값을 할당하는 예제    
  
  START TRANSACTION; -- 트랜잭션 시작
  
  SET v_step = '1.2 insert into emp ';
    
    INSERT INTO emp(empno)
    VALUES(v_empno);
  
  COMMIT;
  
  SET v_step = '1.3 end ';
    
  SET O_RESULT  = 0;
  SET O_MESSAGE = 'Success';
  SELECT O_RESULT, O_MESSAGE;   -- 성공 메시지 출력
  
END//
DELIMETER ;

호출예제1) * OUT, INOUT  파라미터는 항상 세션변수로 처리하여 함
CALL prc_insert_emp(@O_RESULT,@O_MESSAGE,30);  

 


by 아발란체 [2018.09.05 16:50:21]

오라클도 저장프로시져 방식을 쓸 수 있고 PL/SQL도 있고요,

마리아도 저장프로시져 쓸 수 있고 PL/SQL 쓸 수 있습니다.

MSSQL도 마찬가지고용.

 

MSSQL은 스토어프로시져

오라클은 PL/SQL 쓰는데

마리아나는 무엇?

 

이라는 질문은... >ㅅ<)/

 


by 야신 [2018.09.06 08:04:34]

ㅡㅡ? 언어를 묻는거냐고 하면

Mssql 이나 오라클이나 mysql , mariadb이나 다 프로시저 또는 저장프로시저라고 부르는데

Mssql 의 프로시저 만드는 언어는 transact-SQL, 오라클은 plsql 이고

MariaDB 는 10.3버젼부터 모드에 따라 plsql 이나 mysql 의 프로그램 언어라고 하는것이 맞지 않을까요?

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입