当前位置: 首页 > news >正文

360建筑网官方网站杭州市西湖区建设局网站

360建筑网官方网站,杭州市西湖区建设局网站,济南集团网站建设公司,怎么做网站推销自己的产品场景 Postgresql中PL/pgSQL代码块的语法与使用-声明与赋值、IF语句、CASE语句、循环语句: Postgresql中PL/pgSQL代码块的语法与使用-声明与赋值、IF语句、CASE语句、循环语句-CSDN博客 上面讲了基本语法,下面记录游标、自定义函数、存储过程的使用。 …

场景

Postgresql中PL/pgSQL代码块的语法与使用-声明与赋值、IF语句、CASE语句、循环语句:

Postgresql中PL/pgSQL代码块的语法与使用-声明与赋值、IF语句、CASE语句、循环语句-CSDN博客

上面讲了基本语法,下面记录游标、自定义函数、存储过程的使用。

注:

博客:
霸道流氓气质_C#,架构之路,SpringBoot-CSDN博客

实现

1、PL/pgSQL游标

PL/pgSQL 游标允许我们封装一个查询,然后每次处理结果集中的一条记录。游标可以将大结果集拆分成许多小的记录,

避免内存溢出;另外,我们可以定义一个返回游标引用的函数,然后调用程序可以基于这个引用处理返回的结果集。

使用游标的步骤:

1. 声明游标变量;

2. 打开游标;

3. 从游标中获取结果;

4. 判断是否存在更多结果。如果存在,执行第 3 步;否则,执行第 5 步;

5. 关闭游标。

示例代码:

DO $$
DECLARErec_user RECORD;cur_user CURSOR(user_name VARCHAR) FORSELECT id, nameFROM b_userWHERE name = user_name;
BEGIN-- 打开游标OPEN cur_user('222');LOOP-- 获取游标中的记录FETCH cur_user INTO rec_user;-- 没有找到更多数据时退出循环EXIT WHEN NOT FOUND;RAISE NOTICE '%,% ' , rec_user.id, rec_user.name;END LOOP;-- Close the cursorCLOSE cur_user;
END $$;

示例代码运行结果

首先,声明了一个游标 cur_user,并且绑定了一个查询语句,通过一个参数user_name 获取指定姓名的用户;

然后使用 OPEN 打开游标;接着在循环中使用 FETCH 语句获取游标中的记录,如果没有找到更多数据退出循环语句;

变量 rec_user 用于存储游标中的记录;最后使用 CLOSE语句关闭游标,释放资源。

2、创建自定义PL/pgSQL函数

要创建一个自定义的 PL/pgSQL 函数,可以使用 CREATE FUNCTION 语句。

CREATE 表示创建函数,OR REPLACE 表示替换函数定义;

name 是函数名;括号内是参数,多个参数使用逗号分隔;argmode 可以是 IN(输入)、OUT(输出)、INOUT(输入输出)

或者 VARIADIC(数量可变),默认为 IN;argname 是参数名称;argtype 是参数的类型;default_expr是参数的默认值;

rettype 是返回数据的类型;AS 后面是函数的定义,和上文中的匿名块相同;最后,LANGUAGE 指定函数实现的语言。

创建一个示例函数,用于返回指定姓名的用户数量

CREATEOR REPLACE FUNCTION get_user_count (user_name VARCHAR ) RETURNS INTEGER AS $$ DECLAREln_count INTEGER;
BEGINSELECT COUNT(*) INTO ln_countFROMb_userWHEREname = user_name;RETURN ln_count;END; $$ LANGUAGE plpgsql;

函数调用方式

SELECT name,get_user_count(name)
FROM b_user ;

调用结果

3、创建存储过程

存储过程,使用 CREATE PROCEDURE 语句创建

存储过程的定义和函数主要的区别在于没有返回值,其他内容都类似。以下示例创建了一个存储过程用于修改用户的信息

CREATEOR REPLACE PROCEDURE update_user (user_id in integer,user_name IN VARCHAR) AS $$ BEGINUPDATE b_userSET name = user_nameWHEREid = user_id;END; $$ LANGUAGE plpgsql;

存储过程调用方法:

call update_user(1,'badao');

http://www.yayakq.cn/news/182054/

相关文章:

  • 盐城网站建站网站分析 工具
  • 媒体运营具体做什么网站改版对seo
  • 建站公司网站 phpwind温州网站建设哪里好
  • 护理学院网站建设直通车怎么开
  • 安康公司网站制作丹徒网站建设公司
  • 织梦网站图片怎么修改网站建设费用包括哪些方面
  • 网站怎么推广网站的增加条件设计
  • 哪些网站可以免费做h5微信小程序公司
  • 重庆网站建设哪个公司好找装修公司上哪个平台
  • 郑州网站模板医美的网站主页怎么做
  • 做网站如果被忽悠了咋办服务质量好的crm系统
  • 网站开发后台框架厦门黄页电话号码查询
  • 科技广告公司网站建设网络促销策略
  • 商务网站开发工具陈铭生的原型是谁
  • 建设银行网站怎么查流水东营招标建设信息网
  • 做传销网站后果严重吗上海市工程建设信息网
  • 做社交网站多少钱网站服务器失去响应什么意思
  • 商务网站开发报告东莞网站建设制作服务
  • 网站开发一般用的什么架构北京工程交易信息网
  • 上海网站建设公司兴田德润优惠吗网站设计公司多少钱
  • 建设银行网站不能登录密码延边网站开发depawo
  • 怎样建一个自己公司的网站网站开发的项目经验
  • 网站建设前的分析网站建设 宁夏
  • 牡丹江市建设行业协会网站东昌府企业做网站推广
  • 保定模板建站软件工程公司简介范文大全
  • 网站如何连接微信支付宝吗宜春做网站哪里好
  • 广西贵港建设集团有限公司网站腾讯云服务器12元一年
  • 枣庄建设路小学网站广州企业建站找哪家
  • 网站建设栏目分析wordpress轻量主题
  • 现在都有什么网站工作室wordpress 去优酷广告插件