【问题标题】:Assigning default value for type为类型分配默认值
【发布时间】:2013-10-16 16:43:17
【问题描述】:
PostgreSQL 9.3 中如何为以下类型的 Oracle 语句分配默认值?
CREATE OR REPLACE FUNCTION(....
...
DECLARE
v_var Table01.column01%TYPE := 'SLOW';
BEGIN
...
...
END;
【问题讨论】:
标签:
oracle
postgresql
user-defined-functions
postgresql-9.2
optional-parameters
【解决方案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
Details in the manual.