Назначение значения по умолчанию для типа

Как присвоить значение по умолчанию следующему типу оператора Oracle в PostgreSQL 9.3?

CREATE OR REPLACE FUNCTION(....
...
DECLARE
 v_var Table01.column01%TYPE := 'SLOW';
BEGIN
...
...
END;



Ответы (1)


Postgres позволяет предоставлять параметры по умолчанию, которые используются для отсутствующих параметров в вызове функции. Разрешено только для параметров в конце списка.
Пример:

CREATE OR REPLACE FUNCTION foo (
                  param1 int
                , v_char tbl01.col01%TYPE DEFAULT 'foo')
...
-- no need to DECLARE anything else.
BEGIN
...

Синтаксическим сокращением будет v_char tbl01.col01%TYPE = 'foo'.

Вызов:

SELECT * FROM foo(1, 'bar');
SELECT * FROM foo(1);        -- Param default kicks in

Подробности в руководстве.

person Erwin Brandstetter    schedule 16.10.2013