DO
$$
<<바깥쪽블록>>
DECLARE
V_NUM1 INT := 10;
V_NUM2 INT := 0;
V_NUM3 INT;
V_MSG VARCHAR(10) := '메인 메시지';
BEGIN
<<안쪽블록>>
DECLARE
V_MSG2 TEXT := '안쪽 메시지';
BEGIN
RAISE NOTICE '-> 1. % : %', V_MSG, V_MSG2;
END 안쪽블록;
RAISE NOTICE '-> 2. %', V_MSG || ' : 본문 실행';
V_NUM3 := V_NUM1 / V_NUM2;
RAISE NOTICE '-> 3. %', V_NUM3;
-- COMMIT;
EXCEPTION
WHEN OTHERS THEN
-- ROLLBACK
RAISE '% : %', SQLSTATE, SQLERRM
USING HINT = 'Raized Error Anonymous Block';
END 바깥쪽블록;
$$ LANGUAGE PLPGSQL;