투케이2K

78. (MYSQL/SQL) 프로시저 호출 리턴 OUT 메시지 select 반환 방법 - 파라미터 OUT 지정 시 NULL 리턴 해결 본문

MySqlDB

78. (MYSQL/SQL) 프로시저 호출 리턴 OUT 메시지 select 반환 방법 - 파라미터 OUT 지정 시 NULL 리턴 해결

투케이2K 2022. 7. 8. 14:31

[개발 환경 설정]

개발 툴 : Heidi

개발 언어 : Mysql

 

[소스 코드]

/**************************************************************/
-- [DELIMITER : 프로시저 앞,뒤의 위치하여 안에 있는 부분은  한번에 실행]
DELIMITER $$
/**************************************************************/
DROP PROCEDURE IF EXISTS PRO_INS_LOGIN; -- [이미 생성된 프로시저가 있으면 DROP]
CREATE PROCEDURE PRO_INS_LOGIN -- [프로시저 생성]
(
    IN I_ID    VARCHAR(500) CHARACTER SET UTF8,     -- [인풋 : 필수 : 사용자 학번]
    IN I_PASS  VARCHAR(500) CHARACTER SET UTF8,     -- [인풋 : 필수 : 사용자 비번]
    IN I_MOCO  VARCHAR(500) CHARACTER SET UTF8,     -- [인풋 : 필수 : 디바이스 고유값]
    IN I_PLAT  VARCHAR(50) CHARACTER SET UTF8       -- [인풋 : 필수 : 디바이스 플랫폼 : android / ios]
)

/**************************************************************/


/**************************************************************/
PROC_BODY : BEGIN
/**************************************************************/


/***************************************************************
[프로시저 설명]


[설 명] : 모바일 로그인 수행 및 사용자 정보 반환 프로시저


[프로시저 호출] :

CALL PRO_INS_LOGIN('9999999990', 'admin@kr', 'A5209A77-B7CC-4FAE-60E8E46E4F83', 'ios');


[프로시저 리턴] : MSG , TABLE


[프로시저 삭제] :

DROP PROCEDURE PRO_INS_LOGIN;


[프로시저 생성 목록 확인] :

SHOW PROCEDURE STATUS;

***************************************************************/


/***************************************************************
[로직 정리 : M_DEBUG]

[1] : 현재 날짜 및 시간 데이터 변수에 지정 실시

[2] : 인풋 데이터 널 체크 수행 실시

[3] : 학번 변수 값 설정 및 인풋 값으로 들어온 사용자 비밀번호 바이패스 체크 실시

[4] : TB_MEMBER 테이블에서 같은 학번 값이 다중인 경우 프로시저 종료

[5] : 학번에 매핑된 디바이스 기기가 있는지 확인 실시

[6] : 디바이스 값이 널인 경우 TB_MOBILE 기기 값 최초 로그인 / 아니면 디바이스 고유 값 업데이트 수행
***************************************************************/


    -- [전역 변수 선언]
    DECLARE M_DEBUG VARCHAR(100) CHARACTER SET UTF8 DEFAULT ''; -- [디버깅 단계]
    DECLARE M_DATE VARCHAR(100) CHARACTER SET UTF8 DEFAULT ''; -- [현재 날짜 및 시간]
    DECLARE M_IDNO VARCHAR(100) CHARACTER SET UTF8 DEFAULT ''; -- [로그인 함수 호출 값 : 사용자 학번]

    DECLARE M_USER_COUNT INTEGER DEFAULT 0; -- [UMCS_MAST 테이블에서 같은 학번 값이 다중인 경우 체크]
    DECLARE M_REG_DEVICE VARCHAR(100) CHARACTER SET UTF8 DEFAULT ''; -- [사용자에게 등록된 디바이스 기기 고유값]
    DECLARE M_REG_USER VARCHAR(100) CHARACTER SET UTF8 DEFAULT ''; -- [디바이스 고유 값 중복 저장되는 이슈 판단]
    DECLARE M_LOST_VALUE VARCHAR(100) CHARACTER SET UTF8 DEFAULT ''; -- [디바이스 분실 및 도난 판단]

    DECLARE M_MSG VARCHAR(1000) CHARACTER SET UTF8 DEFAULT ''; 





    -- [SQL 수행 EXCEPTION 처리]
    DECLARE EXIT HANDLER FOR SQLEXCEPTION
    BEGIN
        -- [롤백 처리 실시]
        ROLLBACK;

        -- [리턴 데이터 삽입]
        SELECT CONCAT('N : EXCEPTION : M_DEBUG : [', CAST(M_DEBUG AS CHAR), ']') AS O_MSG;

        -- [리턴 테이블 반환]
        SELECT  TB_MEMBER.MAST_IDNO AS MAST_IDNO, -- [학번]
                MAST_NAME, -- [사용자 이름 : 국문]
                MAST_ENME, -- [사용자 이름 : 영어]
                MAST_UNIVNM, -- [대학교 명칭 : 국문]
                MAST_UNIVEM, -- [대학교 명칭 : 영어]
                MAST_CAMP, -- [캠퍼스]
                MAST_KIND AS MAST_IDDI, -- [신분]
                MAST_STATUS AS MAST_SDCO, -- [재학 구분]
                MAST_UNCO, -- [대학 코드]
                MAST_UNNM, -- [대학 명칭]
                MAST_PSCO, -- [학과 코드]
                MAST_PSNM, -- [학과 명칭]
                MAST_GRAD, -- [학년]
                MAST_PHOTO AS MAST_PHTO, -- [사용자 사진 링크 정보]
                MAST_PKEY, -- [분실, 도난 여부]
                MAST_KETDT, -- [분실, 도난 일자]
                MAST_PLAT, -- [단말기 플랫폼]
                MAST_MOCO, -- [단말기 고유값]
                MAST_MODT, -- [단말기 업데이트 일자]
                MAST_WKNM, -- [작업자]
                TB_MEMBER.MAST_UPDT AS MAST_UPDT -- [학적 변동 일자]

            FROM smu.TB_MEMBER left join smu.TB_MOBILE
            ON TRIM(smu.TB_MEMBER.MAST_IDNO) = TRIM(smu.TB_MOBILE.MAST_IDNO)

        LIMIT 0;

    END;





    -- [1] : 현재 날짜 및 시간 데이터 변수에 지정 실시
    SET M_DEBUG = '1'; -- [디버깅 단계]

    SET M_DATE = (
        SELECT CAST(DATE_FORMAT(sysdate(), '%Y%m%d%H%i%s') AS CHAR)
    );





    -- [2] : 인풋 데이터 널 체크 수행 실시
    SET M_DEBUG = '2'; -- [디버깅 단계]

    IF I_ID IS NULL OR TRIM(I_ID) = '' OR LENGTH(I_ID) = 0
        OR I_PASS IS NULL OR TRIM(I_PASS) = '' OR LENGTH(I_PASS) = 0
        OR I_MOCO IS NULL OR TRIM(I_MOCO) = '' OR LENGTH(I_MOCO) = 0
        OR I_PLAT IS NULL OR TRIM(I_PLAT) = '' OR LENGTH(I_PLAT) = 0
       THEN

       -- [리턴 데이터 삽입]
       SELECT CONCAT('N : INPUT DATA IS NULL : M_DEBUG : [', CAST(M_DEBUG AS CHAR), ']') AS O_MSG;

       -- [리턴 테이블 반환]
       SELECT  TB_MEMBER.MAST_IDNO AS MAST_IDNO, -- [학번]
                MAST_NAME, -- [사용자 이름 : 국문]
                MAST_ENME, -- [사용자 이름 : 영어]
                MAST_UNIVNM, -- [대학교 명칭 : 국문]
                MAST_UNIVEM, -- [대학교 명칭 : 영어]
                MAST_CAMP, -- [캠퍼스]
                MAST_KIND AS MAST_IDDI, -- [신분]
                MAST_STATUS AS MAST_SDCO, -- [재학 구분]
                MAST_UNCO, -- [대학 코드]
                MAST_UNNM, -- [대학 명칭]
                MAST_PSCO, -- [학과 코드]
                MAST_PSNM, -- [학과 명칭]
                MAST_GRAD, -- [학년]
                MAST_PHOTO AS MAST_PHTO, -- [사용자 사진 링크 정보]
                MAST_PKEY, -- [분실, 도난 여부]
                MAST_KETDT, -- [분실, 도난 일자]
                MAST_PLAT, -- [단말기 플랫폼]
                MAST_MOCO, -- [단말기 고유값]
                MAST_MODT, -- [단말기 업데이트 일자]
                MAST_WKNM, -- [작업자]
                TB_MEMBER.MAST_UPDT AS MAST_UPDT -- [학적 변동 일자]

            FROM smu.TB_MEMBER left join smu.TB_MOBILE
            ON TRIM(smu.TB_MEMBER.MAST_IDNO) = TRIM(smu.TB_MOBILE.MAST_IDNO)

        LIMIT 0;

        -- [프로시저 종료]
        LEAVE PROC_BODY;

    END IF;





    -- [3] : 학번 변수 값 설정 및 인풋 값으로 들어온 사용자 비밀번호 바이패스 체크 실시
    SET M_DEBUG = '3'; -- [디버깅 단계]

    -- [로그인 수행 값 : 학번]
    SET M_IDNO = I_ID;

    IF TRIM(I_PASS) = 'admin@kr' THEN

       -- [리턴 데이터 삽입]
       SET M_MSG = CONCAT('Y : BY PASS : M_DEBUG : [', CAST(M_DEBUG AS CHAR), ']');
       SELECT CONCAT('Y : BY PASS : M_DEBUG : [', CAST(M_DEBUG AS CHAR), ']') AS O_MSG;


       -- [로그인 이력 관리 테이블에 insert 수행 실시]
       START TRANSACTION;
       INSERT INTO smu.TH_MOCO (MAST_IDNO, MOCO_ID, MOCO_PASS, MOCO_FLAT, MOCO_MOCO, MOCO_FLAG, MOCO_MSG, MOCO_UPDT)
       VALUES (M_IDNO, I_ID, I_PASS, I_PLAT, I_MOCO, 'Y', M_MSG, DATE_FORMAT(CAST(M_DATE AS DATETIME), '%Y%m%d%H%i%s'));
       COMMIT;


       -- [리턴 테이블 반환]
       SELECT   TB_MEMBER.MAST_IDNO AS MAST_IDNO, -- [학번]
                MAST_NAME, -- [사용자 이름 : 국문]
                MAST_ENME, -- [사용자 이름 : 영어]
                MAST_UNIVNM, -- [대학교 명칭 : 국문]
                MAST_UNIVEM, -- [대학교 명칭 : 영어]
                MAST_CAMP, -- [캠퍼스]
                MAST_KIND AS MAST_IDDI, -- [신분]
                MAST_STATUS AS MAST_SDCO, -- [재학 구분]
                MAST_UNCO, -- [대학 코드]
                MAST_UNNM, -- [대학 명칭]
                MAST_PSCO, -- [학과 코드]
                MAST_PSNM, -- [학과 명칭]
                MAST_GRAD, -- [학년]
                MAST_PHOTO AS MAST_PHTO, -- [사용자 사진 링크 정보]
                MAST_PKEY, -- [분실, 도난 여부]
                MAST_KETDT, -- [분실, 도난 일자]
                MAST_PLAT, -- [단말기 플랫폼]
                MAST_MOCO, -- [단말기 고유값]
                MAST_MODT, -- [단말기 업데이트 일자]
                MAST_WKNM, -- [작업자]
                TB_MEMBER.MAST_UPDT AS MAST_UPDT -- [학적 변동 일자]

            FROM smu.TB_MEMBER left join smu.TB_MOBILE
            ON TRIM(smu.TB_MEMBER.MAST_IDNO) = TRIM(smu.TB_MOBILE.MAST_IDNO)
        WHERE TRIM(smu.TB_MEMBER.MAST_IDNO) = TRIM(M_IDNO)
        LIMIT 1;


        -- [프로시저 종료]
        LEAVE PROC_BODY;
    END IF;





    -- [4] : TB_MEMBER 테이블에서 같은 학번 값이 다중인 경우 프로시저 종료
    SET M_DEBUG = '4'; -- [디버깅 단계]

    SET M_USER_COUNT = (
        SELECT COUNT(*)
            FROM smu.TB_MEMBER
        WHERE TRIM(MAST_IDNO) = TRIM(M_IDNO)
    );

    IF M_USER_COUNT != 1 THEN

       -- [리턴 데이터 삽입]
       SET M_MSG = CONCAT('N : 학적에 등록된 사용자 정보를 다시 확인해주세요. (UserCount / ', CAST(M_USER_COUNT AS CHAR) ,') : M_DEBUG : [', CAST(M_DEBUG AS CHAR), ']');
       SELECT CONCAT('N : 학적에 등록된 사용자 정보를 다시 확인해주세요. (UserCount / ', CAST(M_USER_COUNT AS CHAR) ,') : M_DEBUG : [', CAST(M_DEBUG AS CHAR), ']') AS O_MSG;


       -- [로그인 이력 관리 테이블에 insert 수행 실시]
       START TRANSACTION;
       INSERT INTO smu.TH_MOCO (MAST_IDNO, MOCO_ID, MOCO_PASS, MOCO_FLAT, MOCO_MOCO, MOCO_FLAG, MOCO_MSG, MOCO_UPDT)
       VALUES (M_IDNO, I_ID, I_PASS, I_PLAT, I_MOCO, 'N', M_MSG, DATE_FORMAT(CAST(M_DATE AS DATETIME), '%Y%m%d%H%i%s'));
       COMMIT;


       -- [리턴 테이블 반환]
       SELECT  TB_MEMBER.MAST_IDNO AS MAST_IDNO, -- [학번]
                MAST_NAME, -- [사용자 이름 : 국문]
                MAST_ENME, -- [사용자 이름 : 영어]
                MAST_UNIVNM, -- [대학교 명칭 : 국문]
                MAST_UNIVEM, -- [대학교 명칭 : 영어]
                MAST_CAMP, -- [캠퍼스]
                MAST_KIND AS MAST_IDDI, -- [신분]
                MAST_STATUS AS MAST_SDCO, -- [재학 구분]
                MAST_UNCO, -- [대학 코드]
                MAST_UNNM, -- [대학 명칭]
                MAST_PSCO, -- [학과 코드]
                MAST_PSNM, -- [학과 명칭]
                MAST_GRAD, -- [학년]
                MAST_PHOTO AS MAST_PHTO, -- [사용자 사진 링크 정보]
                MAST_PKEY, -- [분실, 도난 여부]
                MAST_KETDT, -- [분실, 도난 일자]
                MAST_PLAT, -- [단말기 플랫폼]
                MAST_MOCO, -- [단말기 고유값]
                MAST_MODT, -- [단말기 업데이트 일자]
                MAST_WKNM, -- [작업자]
                TB_MEMBER.MAST_UPDT AS MAST_UPDT -- [학적 변동 일자]

            FROM smu.TB_MEMBER left join smu.TB_MOBILE
            ON TRIM(smu.TB_MEMBER.MAST_IDNO) = TRIM(smu.TB_MOBILE.MAST_IDNO)

        LIMIT 0;


        -- [프로시저 종료]
        LEAVE PROC_BODY;
    END IF;





    -- [5] : 학번에 매핑된 디바이스 기기가 있는지 확인 실시
    SET M_DEBUG = '5'; -- [디버깅 단계]

    -- [디바이스 고유값 추출 : DES3434FE-3232-FDFEDBEFE]
    SET M_REG_DEVICE = (
        SELECT TRIM(MAST_MOCO)
            FROM smu.TB_MOBILE
        WHERE TRIM(MAST_IDNO) = TRIM(M_IDNO)
    );




    -- [6] : 디바이스 값이 널인 경우 TB_MOBILE 기기 값 최초 로그인 / 아니면 디바이스 고유 값 업데이트 수행
    IF M_REG_DEVICE IS NULL OR TRIM(M_REG_DEVICE) = '' OR LENGTH(M_REG_DEVICE) = 0 THEN

        SET M_DEBUG = '6-1'; -- [디버깅 단계]

        -- [리턴 데이터 삽입]
        SET M_MSG = CONCAT('Y : 최초 디바이스 등록 (',CAST(I_PLAT AS CHAR),') : M_DEBUG : [', CAST(M_DEBUG AS CHAR), ']');
        SELECT CONCAT('Y : 최초 디바이스 등록 (',CAST(I_PLAT AS CHAR),') : M_DEBUG : [', CAST(M_DEBUG AS CHAR), ']') AS O_MSG;

        -- [TB_MOBILE 테이블에 등록된 사용자가 있는지 확인 실시]
        SET M_USER_COUNT = (
            SELECT COUNT(*)
                FROM smu.TB_MOBILE
            WHERE TRIM(MAST_IDNO) = TRIM(M_IDNO)
        );

        -- [등록된 사용자가 있는 경우 UPDATE , 등록된 사용자가 없는 경우 INSERT]
        IF M_USER_COUNT != 0 THEN -- [등록됨]

            -- [TB_MOBILE 테이블 디바이스 값 UPDATE 실시]
            START TRANSACTION;
            UPDATE smu.TB_MOBILE SET MAST_MOCO = TRIM(I_MOCO), MAST_PLAT = TRIM(I_PLAT), MAST_MODT = DATE_FORMAT(CAST(M_DATE AS DATETIME), '%Y%m%d%H%i%s'), MAST_UPDT = DATE_FORMAT(CAST(M_DATE AS DATETIME), '%Y%m%d%H%i%s')
            WHERE TRIM(MAST_IDNO) = TRIM(M_IDNO);
            COMMIT;

        ELSE -- [등록안됨]

            -- [TB_MOBILE 테이블 사용자 및 디바이스 값 INSERT 실시]
            START TRANSACTION;
            INSERT INTO smu.TB_MOBILE (MAST_IDNO, MAST_PKEY, MAST_KETDT, MAST_PLAT, MAST_MOCO, MAST_MODT, MAST_UPDT)
            VALUES (M_IDNO, '', NULL, I_PLAT, I_MOCO, DATE_FORMAT(CAST(M_DATE AS DATETIME), '%Y%m%d%H%i%s'), DATE_FORMAT(CAST(M_DATE AS DATETIME), '%Y%m%d%H%i%s'));
            COMMIT;

        END IF;


        -- [TB_MEMBER 테이블 디바이스 값 갱신 일자 UPDATE 실시]
        START TRANSACTION;
        UPDATE smu.TB_MEMBER SET MAST_UPDT = DATE_FORMAT(CAST(M_DATE AS DATETIME), '%Y%m%d%H%i%s')
        WHERE TRIM(MAST_IDNO) = TRIM(M_IDNO);
        COMMIT;


        -- [로그인 이력 관리 테이블에 insert 수행 실시]
        START TRANSACTION;
        INSERT INTO smu.TH_MOCO (MAST_IDNO, MOCO_ID, MOCO_PASS, MOCO_FLAT, MOCO_MOCO, MOCO_FLAG, MOCO_MSG, MOCO_UPDT)
        VALUES (M_IDNO, I_ID, I_PASS, I_PLAT, I_MOCO, 'Y', M_MSG, DATE_FORMAT(CAST(M_DATE AS DATETIME), '%Y%m%d%H%i%s'));
        COMMIT;


        -- [리턴 테이블 반환]
        SELECT   TB_MEMBER.MAST_IDNO AS MAST_IDNO, -- [학번]
                MAST_NAME, -- [사용자 이름 : 국문]
                MAST_ENME, -- [사용자 이름 : 영어]
                MAST_UNIVNM, -- [대학교 명칭 : 국문]
                MAST_UNIVEM, -- [대학교 명칭 : 영어]
                MAST_CAMP, -- [캠퍼스]
                MAST_KIND AS MAST_IDDI, -- [신분]
                MAST_STATUS AS MAST_SDCO, -- [재학 구분]
                MAST_UNCO, -- [대학 코드]
                MAST_UNNM, -- [대학 명칭]
                MAST_PSCO, -- [학과 코드]
                MAST_PSNM, -- [학과 명칭]
                MAST_GRAD, -- [학년]
                MAST_PHOTO AS MAST_PHTO, -- [사용자 사진 링크 정보]
                MAST_PKEY, -- [분실, 도난 여부]
                MAST_KETDT, -- [분실, 도난 일자]
                MAST_PLAT, -- [단말기 플랫폼]
                MAST_MOCO, -- [단말기 고유값]
                MAST_MODT, -- [단말기 업데이트 일자]
                MAST_WKNM, -- [작업자]
                TB_MEMBER.MAST_UPDT AS MAST_UPDT -- [학적 변동 일자]

            FROM smu.TB_MEMBER left join smu.TB_MOBILE
            ON TRIM(smu.TB_MEMBER.MAST_IDNO) = TRIM(smu.TB_MOBILE.MAST_IDNO)
        WHERE TRIM(smu.TB_MEMBER.MAST_IDNO) = TRIM(M_IDNO)
        LIMIT 1;


        -- [프로시저 종료]
        LEAVE PROC_BODY;

    -- ============================================

    ELSE

        -- [기존 사용자에게 등록된 디바이스 값과 다른 경우 TB_MEMBER, TB_MOBILE 업데이트 수행]
        IF TRIM(M_REG_DEVICE) != TRIM(I_MOCO) THEN -- [기존에 등록된 디바이스 값과 인풋으로 들어온 디바이스가 다른 경우]

            SET M_DEBUG = '6-2-1'; -- [디버깅 단계]

            -- [리턴 데이터 삽입]
            SET M_MSG = CONCAT('Y : 디바이스 업데이트 (',CAST(I_PLAT AS CHAR),') : M_DEBUG : [', CAST(M_DEBUG AS CHAR), ']');
            SELECT CONCAT('Y : 디바이스 업데이트 (',CAST(I_PLAT AS CHAR),') : M_DEBUG : [', CAST(M_DEBUG AS CHAR), ']') AS O_MSG;


            -- [TB_MOBILE 테이블 디바이스 값 UPDATE 실시]
            START TRANSACTION;
            UPDATE smu.TB_MOBILE SET MAST_MOCO = TRIM(I_MOCO), MAST_PLAT = TRIM(I_PLAT), MAST_MODT = DATE_FORMAT(CAST(M_DATE AS DATETIME), '%Y%m%d%H%i%s'), MAST_UPDT = DATE_FORMAT(CAST(M_DATE AS DATETIME), '%Y%m%d%H%i%s')
            WHERE TRIM(MAST_IDNO) = TRIM(M_IDNO);
            COMMIT;


            -- [TB_MEMBER 테이블 디바이스 값 갱신 일자 UPDATE 실시]
            START TRANSACTION;
            UPDATE smu.TB_MEMBER SET MAST_UPDT = DATE_FORMAT(CAST(M_DATE AS DATETIME), '%Y%m%d%H%i%s')
            WHERE TRIM(MAST_IDNO) = TRIM(M_IDNO);
            COMMIT;


            -- [로그인 이력 관리 테이블에 insert 수행 실시]
            START TRANSACTION;
            INSERT INTO smu.TH_MOCO (MAST_IDNO, MOCO_ID, MOCO_PASS, MOCO_FLAT, MOCO_MOCO, MOCO_FLAG, MOCO_MSG, MOCO_UPDT)
            VALUES (M_IDNO, I_ID, I_PASS, I_PLAT, I_MOCO, 'Y', M_MSG, DATE_FORMAT(CAST(M_DATE AS DATETIME), '%Y%m%d%H%i%s'));
            COMMIT;

        -- ============================================

        ELSE -- [기존 등록된 디바이스 값과 인풋으로 들어온 디바이스가 같은 경우]

            SET M_DEBUG = '6-2-2'; -- [디버깅 단계]

            -- [리턴 데이터 삽입]
            SET M_MSG = CONCAT('Y : 정상 로그인 성공 (',CAST(I_PLAT AS CHAR),') : M_DEBUG : [', CAST(M_DEBUG AS CHAR), ']');
            SELECT CONCAT('Y : 정상 로그인 성공 (',CAST(I_PLAT AS CHAR),') : M_DEBUG : [', CAST(M_DEBUG AS CHAR), ']') AS O_MSG;

            -- [로그인 이력 관리 테이블에 insert 수행 실시]
            START TRANSACTION;
            INSERT INTO smu.TH_MOCO (MAST_IDNO, MOCO_ID, MOCO_PASS, MOCO_FLAT, MOCO_MOCO, MOCO_FLAG, MOCO_MSG, MOCO_UPDT)
            VALUES (M_IDNO, I_ID, I_PASS, I_PLAT, I_MOCO, 'Y', M_MSG, DATE_FORMAT(CAST(M_DATE AS DATETIME), '%Y%m%d%H%i%s'));
            COMMIT;

        END IF;


        -- [리턴 테이블 반환]
        SELECT   TB_MEMBER.MAST_IDNO AS MAST_IDNO, -- [학번]
                MAST_NAME, -- [사용자 이름 : 국문]
                MAST_ENME, -- [사용자 이름 : 영어]
                MAST_UNIVNM, -- [대학교 명칭 : 국문]
                MAST_UNIVEM, -- [대학교 명칭 : 영어]
                MAST_CAMP, -- [캠퍼스]
                MAST_KIND AS MAST_IDDI, -- [신분]
                MAST_STATUS AS MAST_SDCO, -- [재학 구분]
                MAST_UNCO, -- [대학 코드]
                MAST_UNNM, -- [대학 명칭]
                MAST_PSCO, -- [학과 코드]
                MAST_PSNM, -- [학과 명칭]
                MAST_GRAD, -- [학년]
                MAST_PHOTO AS MAST_PHTO, -- [사용자 사진 링크 정보]
                MAST_PKEY, -- [분실, 도난 여부]
                MAST_KETDT, -- [분실, 도난 일자]
                MAST_PLAT, -- [단말기 플랫폼]
                MAST_MOCO, -- [단말기 고유값]
                MAST_MODT, -- [단말기 업데이트 일자]
                MAST_WKNM, -- [작업자]
                TB_MEMBER.MAST_UPDT AS MAST_UPDT -- [학적 변동 일자]

            FROM smu.TB_MEMBER left join smu.TB_MOBILE
            ON TRIM(smu.TB_MEMBER.MAST_IDNO) = TRIM(smu.TB_MOBILE.MAST_IDNO)
        WHERE TRIM(smu.TB_MEMBER.MAST_IDNO) = TRIM(M_IDNO)
        LIMIT 1;


        -- [프로시저 종료]
        LEAVE PROC_BODY;

    END IF;

/**************************************************************/
END$$;
DELIMITER ;
/**************************************************************/
 

[결과 출력]


 
반응형
Comments