暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

人大金仓数据库KingbaseES存储过程介绍

数据猿 2023-09-05
1548

关键字:存储过程

相当于客户端的一段SQL批处理程序,无返回值,可接受多个参数,参数模式包括IN,OUT,INOUT三种,其被存储在数据库中,供用户随时调用。

1.什么是存储过程?

存储过程(Stored Procedure)是一种在数据库中存储复杂程序,以便外部调用的一种数据库对象。存储过程是为了完成特定的SQL语句集,经编译创建并保存在数据库中,用户可通过制定存储过程的名字并给定参数(需要时)来调用执行。就是数据库SQL语言层面的代码封装与重用。

2.存储过程的优点

  • 重复使用-存储过程可以重复使用,从而减少开发人员的工作量。
  • 减少网络流量-存储过程在服务器上,调用时只需传递存储过程的使用权,参数化的存储过程还可以防止sql注入。
  • 安全-存储过程可被作为一种安全机制来充分利用,系统管理员通过设置存储过程的访问权限,从而实现相应数据的访问权限限制,避免了用户对数据表的直接访问,保证数据的安全性。

3.存储过程的缺点

  • 数据库移植不方便
  • 大量采用存储过程进行业务逻辑的开发致命的缺点是很多存储过程不支持面向对象的设计,无法采用面向对象的方式将业务逻辑进行封装,从而无法形成通用的可支持复用的业务逻辑框架。
  • 不支持集群
  • 代码可读性差,难以维护

4.存储过程的使用

1、存储过程调用:

使用call调用
  CALL procedure_name();
  匿名块中直接使用procedure_name;调用
  BEGIN
    procedure_name();
  END;

2、删除存储过程

  DROP PROCEDURE procedure_name;

举例:

\set SQLTERM /
CREATE OR REPLACE PROCEDURE pr1(p1 int) AS
  v1 int :=100;
  v2 varchar(50) :=‘kingbase’;
BEGIN
  DBMS_OUTPUT.PUT_LINE(v1+p1);
  DBMS_OUTPUT.PUT_LINE(v2);
END;
/
CALL pr1(200);
/
DROP PROCEDURE pr1;
/

5.总结

本文介绍了存储过程的相关概念以及存储过程的优缺点,创建存储过程后可在对象编辑器中加入除了sql语句之外的语句(例如:if,else语句)。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论