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 $$
BEGINRETURN subtotal * 0.06;
END;
$$ LANGUAGE plpgsql;

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

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

CREATE FUNCTION sales_tax(real) RETURNS real AS $$
DECLAREsubtotal ALIAS FOR $1;
BEGINRETURN subtotal * 0.06;
END;
$$ LANGUAGE plpgsql;

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

更多的例子:

CREATE FUNCTION instr(varchar, integer) RETURNS integer AS $$
DECLAREv_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 $$
BEGINRETURN in_t.f1 || in_t.f3 || in_t.f5 || in_t.f7;
END;
$$ LANGUAGE plpgsql;

转载于:https://www.cnblogs.com/gaojian/p/3183788.html

PL/pgSQL学习笔记之六相关推荐

  1. PL/pgSQL学习笔记之九

    http://www.postgresql.org/docs/9.1/static/plpgsql-declarations.html 39.3.2. ALIAS newname ALIAS FOR ...

  2. 判断题:oracle自带的sql语言环境是pl/sql,Oracle之PL/SQL学习笔记之数据类型(三)

    Oracle之PL/SQL学习笔记之数据类型(三) 所有的编程语言中变量是使用最频繁的.PL/SQL作为一个面向过程的数据库编程语言同样少不了变量,利用变量可以把PL/SQL块需要的参数传递进来,做到 ...

  3. Oracle之PL/SQL学习笔记之有名块练习

    2019独角兽企业重金招聘Python工程师标准>>> Oracle之PL/SQL学习笔记之有名块练习 存储过程案例: 案例1: 根据雇员姓名跟新雇员工资,如果雇员不存在输出没有该雇 ...

  4. Unity3D学习笔记之六创建更多的Prefab

           在写完第五篇后,因为不知名的原因,我突然不能够上传100KB以上的图片在博客中了.等了几天还是这样,所以我用PS把图片的分辨率一张张调低,让图片的大小都在100左右,将积攒了四篇的学习笔 ...

  5. PL/SQL学习笔记-常量变量及数据类型初步

    一:常量和变量 开始之前,还是照例做个经典的例子,如下: declare mydate varchar2(16) := 'hellow world'; begindbms_output.put_lin ...

  6. PL/SQL学习笔记(四)

    这部分主要讲述在PL/SQL中如何访问oracle (一)检索单行数据 在PL/SQL嵌入select语句,使用方法: SELECT select_list INTO variable_name1,v ...

  7. linux 路由指向策略,Linux 路由 学习笔记 之六 策略规则的添加

    上一节分析了策略规则相关的数据结构,本节就分析一下策略规则的添加.对于策略规则的功能模块,由于 v4 . v6 都有用到,所以该模块也和邻居模块一样,抽象出了通用规则的接口函数,然后根据传入的参数来进 ...

  8. python开发学习笔记之六(面向对象)

    面向对象引入: 现在有一个这样的需求:做汽水. 在之前的学习中,我们怎样处理这种类似的问题呢?思考一下,哦,不就是分步骤做嘛,把复杂的问题简单化,分成一个一个的步骤,就像机器人,流水线一样,先干什么后 ...

  9. 快速软件开发 学习笔记 之六

    第9章 Customer-oriented Development(面向客户软件开发) Customer("客户")这个词,是指花钱购买拟开发软件产品的人或负责验收软件产品的人.我 ...

最新文章

  1. 如何防止批处理文件执行后自动关闭控制台
  2. [bzoj 3534][Sdoi2014] 重建
  3. 进制在c语言中的作用,C语言中的进制是什么意思?
  4. 摇滚吧HTML5!Jsonic超声波前端交互!
  5. 听说你们找我很久了?
  6. Linux学习笔记之系统路径和命令
  7. Linux 命令(129)—— passwd 命令
  8. C# 连接mysql 报错:SSL Connection error
  9. 机器学习笔记(十八):模型正则化
  10. 南师大计算机系,清华大学2010计算机系本科录取名单(南京仅1人考上)
  11. 索尼rx1r人脸识别_RX1 vs RX1R 索尼黑卡新老机皇画面解析力内战
  12. QQ自带截图功能(你想不到的强大, 必看,长截图/翻译/文本识别/钉在桌面/录屏)
  13. 关于termux在手机上搭载Linux系统,python,ssh
  14. 学位认证上‘学位网’办理即可
  15. 台式计算机没有声音图标,电脑突然没有声音怎么解决 电脑喇叭图标不见了怎么办...
  16. Windows个性化之稀奇古怪三两式(转)
  17. safari隐私模式下LocalStorage无法使用
  18. mysql之联合索引
  19. 面向NLP的AI产品方法论——如何设计多轮语音技能
  20. 计算机四级网络工程师 郑州报考条件,郑州一建报考条件2021年

热门文章

  1. Qt奇淫技巧-使用QSharedMemory方式实现数据跨界面传输
  2. Linux学习笔记-Makefile的基本使用
  3. Qt工作笔记-线程池作用之一:限制系统中执行线程的数量
  4. 联发科有没有高端处理器_2021年华为将成为联发科最大客户?麒麟或将“灭亡?”...
  5. 长沙中级职称计算机考试时间,湖南土木工程中级职称注册及每年考试时间是什么时候...
  6. 数字图像处理:图像平均/加法_OPT小讲堂 ∣ SciSmart图像增强之二值化
  7. 邮箱服务器怎么清理缓存,如何清除Outlook的附件缓存?
  8. 德州2021高考考试成绩查询,德州高考成绩查询系统2021
  9. 回顾 - 判断质数精简算法
  10. 数据结构之二叉树的物理结构(存储结构)