zoukankan      html  css  js  c++  java
  • PL/pgSQL学习笔记之六

    http://www.postgresql.org/docs/9.1/static/plpgsql-declarations.html

    39.3.1. 声明函数参数

    传递给函数的参数被用 $1、$2等依次类推的标志符命名。作为可选项,为了提高可读性,可以为$n 参数名称定义别名。此后,既可以用数字标志符也可以用别名来指代参数值。

    有两种方式来创建别名。推荐使用的方法是在CREATE FUNCTION命令你个中给参数一个名字,例如:

    CREATE FUNCTION sales_tax(subtotal real) RETURNS real AS $$
    BEGIN
        RETURN subtotal * 0.06;
    END;
    $$ LANGUAGE plpgsql;

    另外一种方法,在PostgreSQL8.0之前,是唯一的方法,它显式声明一个别名。采用如下的声明语法:
    name ALIAS FOR $n;

    上述例子采用这种方式后变为:

    CREATE FUNCTION sales_tax(real) RETURNS real AS $$
    DECLARE
        subtotal ALIAS FOR $1;
    BEGIN
        RETURN subtotal * 0.06;
    END;
    $$ LANGUAGE plpgsql;

    请注意: 上述两个例子并不是完全相同。在第一个例子中, subtotal 可以通过 sales_tax.subtotal 来参照。但是在第二个例子中不能如此。 (如果在内部块中给一个标签,倒是可以用 标签.subtotal方式来指定它)

    更多的例子:

    CREATE FUNCTION instr(varchar, integer) RETURNS integer AS $$
    DECLARE
        v_string ALIAS FOR $1;
        index ALIAS FOR $2;
    BEGIN
        -- some computations using v_string and index here
    END;
    $$ LANGUAGE plpgsql;
    
    
    CREATE FUNCTION concat_selected_fields(in_t sometablename) RETURNS text AS $$
    BEGIN
        RETURN in_t.f1 || in_t.f3 || in_t.f5 || in_t.f7;
    END;
    $$ LANGUAGE plpgsql;
  • 相关阅读:
    Docker build Dockerfile 构建镜像
    Docker 容器启动 查看容器状态
    Docker 获取镜像
    Docker 容器状态查看
    windows 检测进程pid
    bzoj 1083 最小生成树
    bzoj 2039 最小割模型
    bzoj 2749 杂题
    bzoj 2748 DP
    bzoj 3190 维护栈
  • 原文地址:https://www.cnblogs.com/gaojian/p/3183788.html
Copyright © 2011-2022 走看看