一、假设有表student,字段分别有id,remark,name等字段。

二、写一个存储函数,根据传过去的变量ID更新remark的内容。

调用该存储函数格式如下:select  update_student(1);

三、存储函数示例如下:

CREATE OR REPLACE FUNCTION public.update_student(id integer)
RETURNS text AS
$BODY$ declare sql_str_run text;
BEGIN
/*
--method 1
select 'update student set remark ='''|| now() ||''' where student.id = '|| $1 into sql_str_run ;
execute sql_str_run; --method 2
execute 'update student set remark =now() where student.id=$1' using $1; */
--method 3
update student set remark =now() where student.id=$1; return 'update is ok' ;
end $BODY$
LANGUAGE plpgsql VOLATILE

以上三种方法都可以实现同样的效果,实际应用中,可以结合场景来使用。比较简单的情况下直接用method 3。

比如,表名、字段名本身是变量,那么method 3 就无法实现,需要根据method 1或method 2来实现。

method 1或method 2 有什么区别呢?

如果需要拼的变量可以直接获取的,则用method2即可。如果变量本身也是需要需要通过函数或语句的计算来获得,一般建议用method 1,先拼成一个字符串,再调用execute来实现。

PG 存储函数调用变量的3种方法。的更多相关文章

  1. Ubuntu设置环境变量的几种方法

    1.Linux的变量种类 按变量的生存周期来划分,Linux变量可分为两类: 1.1 永久的:需要修改配置文件,变量永久生效. 1.2 临时的:使用export命令声明即可,变量在关闭shell时失效 ...

  2. java环境变量配置四种方法

    原文:java环境变量配置四种方法 Java编程首要工作就是安装JDK(Java Development Kit).一通“NEXT”点完安装后就是最重要的环境变量设置了.也许有人会问为什么要设置环境变 ...

  3. PHP 序列化变量的 4 种方法

    摘自: PHP 序列化变量的 4 种方法 http://www.iteye.com/news/25668

  4. Kettle_设置变量的两种方法

    一个复杂的kettle作业一般包括很多子作业和转换,在主作业Start后通常会添加一个[设置变量]的流程,该流程的功能是为所有流程的公共变量设置通用值.       主作业添加的[设置变量]针对的是所 ...

  5. c#是否参入中间变量交换变量的几种方法

    大家很熟悉知道,交换变量经常的使用的一种方法是使用第三个变量,也符合正常人的思维逻辑,但是还有其他的一些方法来实现,但是有点“偏门”,记住就好了.下面就列举这几种方法. 第一种方法,会用到参数的方法再 ...

  6. ubuntu12中设置PATH环境变量的几种方法(三种办法)

    如果在Ubuntu12系统中自行安装了一些软件,特别是使用tar.gz文件包安装的软件,通常会放在/usr/local或者/opt,甚至放在/home下,但是如果要调用或执行时,必须加上完整的路径才可 ...

  7. Hive开发中使用变量的两种方法

    在使用hive开发数据分析代码时,经常会遇到需要改变运行参数的情况,比如select语句中对日期字段值的设定,可能不同时间想要看不同日期的数据,这就需要能动态改变日期的值.如果开发量较大.参数多的话, ...

  8. linux修改环境变量的三种方法【转】

    [环境变量配置的三个方法] 如想将一个路径加入到$PATH中,可以像下面这样做:  1. 控制台中,不赞成使用这种方法,因为换个shell,你的设置就无效了,因此这种方法仅仅是临时使用,以后要使用的时 ...

  9. python字符串转换成变量的几种方法

    个人比较喜欢用第三种方法 var = "This is a string" varName = 'var' s= locals()[varName] s2=vars()[varNa ...

随机推荐

  1. kotlin 1.3

    原文:https://www.oschina.net/news/101292/kotlin-1-3-released

  2. 89C51单片机的学习

    好久都没来写一些东西了 最近老是忙着玩了,都忘记认真学习了. 大概从明天开始就要开始忙了. 1,英语四级 2,单片机课程 3,安卓课程 4,PS 感觉事情好多. 但是我还是心不在焉.好奇怪. 反正就是 ...

  3. August 13th 2017 Week 33rd Sunday

    The best accessory a girl can own is confidence. 女生最好的饰品就是自信. Only when we have our own ideas and on ...

  4. 只用最适合的! 全面对比主流 .NET 报表控件:水晶报表、FastReport、ActiveReports 和 Stimulsoft

    前言 随着 .NET 平台的出现,报表相关的开发控件随之出现,目前已经有若干成熟的产品可供开发人员使用,本文旨在通过从不同维度对比目前最流行的4款 .NET报表控件,给所有报表开发人员在做产品选型时一 ...

  5. scala当中的类型参数

    类型参数主要就是研究scala当中的类或者scala当中的方法的泛型 1.scala当中的类的泛型         object Demo8 {          def main(args: Arr ...

  6. 匹配IP的正则表达式

    正则表达式匹配IP 1 ((25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)\.){3}(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|[1-9])  

  7. Spring(十二)之JDBC框架

    JDBC 框架概述 在使用普通的 JDBC 数据库时,就会很麻烦的写不必要的代码来处理异常,打开和关闭数据库连接等.但 Spring JDBC 框架负责所有的低层细节,从开始打开连接,准备和执行 SQ ...

  8. 解决Bug步骤

    1.看报错.将bug定位到文件.类.方法. 2.打断点.将bug定位到具体代码行号. 3.分析断点输出结果. 4.结合报错和断点结果,修改代码. 总之:拆解问题.定位问题.分析问题.解决问题.

  9. 【Javascript-基础-ecma6】ecma6学习笔记(持续更新)

    makdown语法手册API String 新特性的方法 基本不支持IE浏览器 String.fromCodePoint(6特性) String.prototype.codePointAt(6特性) ...

  10. 实现一个div的拖拽效果

    实现思路: 鼠标按下开始拖拽 记录摁下鼠标时的鼠标位置以及元素位置 拖动鼠标记下当前鼠标的位置 鼠标当前位置-摁下时鼠标位置= 鼠标移动距离 元素位置= 鼠标移动距离+鼠标摁下时元素的位置 class ...