본문 바로가기

데이터베이스/Summary

Db에 대한 웃긴 이야기

말이 안통하는 중국인 직원이 하나 있습니다. 통역을 통해서 주로 업무를 주고 받는데
이 사람이 DB쪽에서 데이터를 가져와서 STL에 넣는 작업을 하고 있었습니다.
SVN(메일 시스템과 연동)에 업데이트를 한걸 보고 깜짝 놀랐습니다. 메일을 보니깐
DB 데이터를 가져오는것도 처음인지 많이 서툴러 보였습니다.
저희가 규약을 정할 때는 무조건 프로시져를 통해서 데이터를 주고 받자라는
약속을 처음부터 규약을 만들어서 사용했는데 이 중국인 직원이
SELECT colum, colum, colum  FROM table 이렇게 사용을 하더군요. 그것도
WHERE 절도 PK 로 한것이 아니라서 당황을 할 수 밖에는 없었습니다.
작게는 몇십만건 많게는 수백 아니 억단위의 데이터가 있을 장소인데말이죠

그래서 이렇게 해라 이렇게 해라 하나부터 10까지 설명을 해주었습니다.
곧바로 작업을 올리려는것을 보고 첨 규약을 정했으니깐 규약대로 프로시져를
만들어서 올렸으면 좋겠다고 말을 하였습니다.

프로시져를 만드는것조차도 버거워보이길래 제가 postgres 프로시져
샘플을 제공해서 주고 작업을 도와주었습니다.

그떄 생각이 난것이 아 나도 저렇게 헤매던 기억이 새록 새록 나네요.



CREATE OR REPLACE FUNCTION "public"."function_name" (integer, varchar) 
RETURNS integer AS
$body$
/*
        Define RETURNS type.
        
        0 : fail
        1 : Success.
*/
DECLARE
       _parameter1 ALIAS FOR $1;
       _parameter2     ALIAS FOR $2;
       
       _parameter3   VARCHAR(18);
       _parameter4  INT4;
       _parameter5     INT4;
       
       BEGIN
            _success := 1;
            _fail := 0;

            SELECT INTO _parameter3 FROM table
            WHERE userindex = _parameter1;
            
            IF _parameter3 IS NOT NULL THEN

               IF _parameter3 = _parameter2 THEN
                  RETURN _success;
               END IF;
            END IF;
            
            RETURN _fail;
       
       END;
$body$
LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;