본문 바로가기

함수

PostgreSQL composite types in SQL queries type 을 인자로 받고 return 도 type 으로 하기 type 을 인자로 받기때문에 인자의 갯수가 1개이상 늘어나지 않게 할수 있음 인자를 나중에 추가해도 인자갯수가 늘어나지 않음(오버로딩) 한개의 인자를 여러건 검색할경우가 있으므로 in 조건이 들어올 가능성이 있는 항목은 배열 처리 단점 : type 을 삭제 할수 없음 CREATE TYPE test1m_type AS ( id INTEGER ,timeslice TIMESTAMP ,system_id CHARACTER VARYING(100) ,group_id CHARACTER VARYING(100) ,agent_name CHARACTER VARYING(100) ,svc_name CHARACTER VARYING(100) ,count INTEGER ) .. 더보기
Postgresql 변수 / 바인드 / 매개변수 처리 $1, $2 순서대로 바인딩되고 변수의 이름을 바꿀수 없다.(갯수가 다르면 에러) CREATE OR REPLACE FUNCTION report_get_countries_new (starts_with text , ends_with text = NULL) RETURNS SETOF lookups.countries AS $func$ DECLARE sql text := 'SELECT * FROM lookups.countries WHERE country_name >= $1'; BEGIN IF ends_with IS NOT NULL THEN sql := sql || ' AND country_name 더보기
[postgreSQL] Function 구조 postgreSQL에서는 Function과 Store Procedure의 구분이 없다. - 대략적인 구조 CREATE OR REPLACE FUNCTION 함수이름 (파라미터명 파라미터타입, ....) RETURNS 리턴타입 // RETURN 타입이 테이블일 경우 TABLE(컬럼명 컬럼타입, ....) LANGUAGE 사용언어 [COST 최대사용자원(숫자임)] [VOLATILE, STABLE, IMMUTABLE] // 택1, Function수행에 필요한 Query실행 시 최적화와 관련된 부분.. AS [$[함수의 정의를 지칭할 변수명]$] //함수정의 DECLARE // 변수 선언 및 정의 변수명 변수타입, .... BEGIN // 로직시작 [ IF 조건문 THEN 로직 ELSE 로직 END IF; ] [.. 더보기