PL/pgSQL学习笔记之六
2023-09-11 14:20:28 时间
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;
相关文章
- Mybatis入门学习笔记
- 【SpringMVC笔记】第五课 改进Handler处理器和视图解析器
- java学习笔记5--类的方法
- 【ANDROID游戏开发十五】关于ANDROID 游戏开发中 ONTOUCHEVENT() 触屏事件的性能优化笔记!
- 《从零开始学Swift》学习笔记(Day 55)——使用try?和try!区别
- RHCE 学习笔记(35) - SMB 服务器
- MATLAB学习笔记 bwlabel的使用
- 机器学习笔记 - python学习记录二 pandas常用命令
- Opencv学习笔记 - ArUco,一个开源的微型的现实增强库
- Opencv学习笔记 - 使用opencvsharp和随机森林进行分类和回归问题
- 机器学习笔记 - 时间序列的混合模型
- 机器学习笔记 - 探索性数据分析(EDA) 入门案例二
- MIME笔记
- 《卸甲笔记》-多表查询之二
- Elasticsearch笔记(一)—Elasticsearch安装配置
- 【Python笔记】图片处理库PIL的源代码安装步骤
- Arduino101学习笔记(二)—— 一些注意的语法点
- pygame学习笔记(5)——精灵
- 【非暴力沟通】阅读笔记