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

openGauss学习笔记-44 openGauss 高级数据管理-存储过程

文章目录

    • openGauss学习笔记-44 openGauss 高级数据管理-存储过程
      • 44.1 语法格式
      • 44.2 参数说明
      • 44.3 示例

openGauss学习笔记-44 openGauss 高级数据管理-存储过程

存储过程是能够完成特定功能的SQL语句集。用户可以进行反复调用,从而减少SQL语句的重复编写数量,提高工作效率。

44.1 语法格式

  • 创建存储过程

    CREATE PROCEDURE procedure_name[ ( {[ argname ] [ argmode ] argtype [ = expression ]}[,...]) ]{ IS | AS } BRGINprocedure_bodyEND
    /
    
  • 调用存储过程

    CALL procedure_name ( param_expr );
    
  • 删除存储过程

    DROP PROCEDURE procedure_name ;
    

44.2 参数说明

  • procedure_name

    创建的存储过程名称。

  • argname

    参数的名称。

  • argmode

    参数的模式。取值范围: IN,OUT,INOUT或VARIADIC。VARIADIC用于声明数组类型的参数。缺省值是IN。

    • IN

      输入参数。表示该参数的值必须在调用存储过程时指定,在存储过程中修改该参数的值不能被返回。

    • OUT

      输出参数。该值可在存储过程内部被改变,并可返回。

    • INOUT

      输入输出参数。调用时指定,并且可被改变和返回。

  • argtype

    参数的数据类型。

  • expression

    设定缺省值。

  • IS、AS

    语法格式要求,必须写其中一个。两个相同。

  • BRGIN、END

    语法格式要求,必须写。

  • procedure_body

    存储过程内容。

  • param_expr

    参数列表。参数间用符号“,”隔开;参数名和参数值用符号 “:=”或者“=>”隔开。

44.3 示例

--创建表格
openGauss=# CREATE TABLE graderecord  
(  number INTEGER,  name CHAR(20),  class CHAR(20),  grade INTEGER
);--定义存储过程
openGauss=# CREATE PROCEDURE insert_data  (param1 INT = 0, param2 CHAR(20),param3 CHAR(20),param4 INT = 0 ) 
ISBEGIN INSERT INTO graderecord VALUES(param1,param2,param3,param4);  
END;
/--调用存储过程
openGauss=# CALL insert_data(param1:=210101,param2:='Alan',param3:='21.01',param4:=92);--删除存储过程
openGauss=# DROP PROCEDURE insert_data;

👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!

图片

http://www.lryc.cn/news/131020.html

相关文章:

  • 【Linux】进程信号篇Ⅲ:可重入函数、volatile关键字、SIGCHLD信号
  • 排序算法:冒泡排序
  • Spring事件监听源码解析
  • Cpp学习——list的模拟实现
  • 工具推荐:Chat2DB一款开源免费的多数据库客户端工具
  • C语言刷题指南(二)
  • [C++11]
  • 【MySQL系列】--初识数据库
  • Unity导入google.protobuf失败,无法找到google命名空间
  • 使用IDM下载视频出现“由于法律原因,IDM无法下载...
  • pointnet C++推理部署--tensorrt框架
  • 34.Netty源码之Netty如何处理网络请求
  • vscode 安装勾选项解释
  • Spring 6.0官方文档示例(24): replace-method的用法
  • 自然语言处理从入门到应用——LangChain:记忆(Memory)-[聊天消息记录]
  • Python web实战之细说 Django 的单元测试
  • pytorch 42 C#使用onnxruntime部署内置nms的yolov8模型
  • 【Lua】(一)VSCode 搭建 Lua 开发环境
  • react-vite-antd环境下新建项目
  • KeilMDk软仿真设置_STM32F03C8
  • mysql的隐式连接和显式连接的区别
  • vue-element-admin新增view后点击侧边栏加载慢问题
  • 论文《LoRA: Low-Rank Adaptation of Large Language Models》阅读
  • MySQL数据类型篇
  • Eureka注册中心
  • 代码随想录算法训练营第53天|动态规划part14
  • houdini xyzdist primuv 实现按路径走
  • Asrock-Z690-PG-Reptide i5-13600kf电脑 Hackintosh 黑苹果引导文件
  • linux 搭建 nexus maven私服
  • MySQL中按月统计并逐月累加统计值的几种写法