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

oracle 自定义存储过程(非常简单明了)

语法说明

CREATE OR REPLACE PROCEDURE 存储过程名字 ( 参数1 IN %TYPE, 参数2 IN %TYPE, 参数3 OUT %TYPE)  IS
变量1 %TYPE;
变量2 %TYPE;
BEGIN存储过程执行语句块
END 存储过程名字;

举例说明

1.举一个简单的例子

定义存储过程 easyProcedure 入参为 两个数 出参为 他们的和

create or replace procedure easyProcedure (add1 in NUMBER, add2 in NUMBER, result out NUMBER) is
beginresult := add1  + add2 ;
end easyProcedure;

使用存储过程接着往下看

2.举一个复杂的例子(例子比较复杂,但很实用)

①创建 TYPE 类型 atrr_type

CREATE OR REPLACE TYPE atrr_type  AS OBJECT
(attrId varchar2(40),objType varchar2(40)
);

②将 TYPE 类型 atrr_type 定义为表, 用做接收返回值

CREATE OR REPLACE TYPE attr_table AS TABLE of atrr_type;

③定义存储过程 入参为 objt 出参为 一张表

create or replace procedure selectAttr(objt in varchar2, attr out attr_table) is type_row atrr_type; 
beginattr := attr_table();		-- 初始化返回结果for thisrow in (select attr_id as attrId, obj_type as objType from CPS_OBJ_ATTR where obj_type = objt) loop type_row := atrr_type(thisrow.attrId, thisrow.objType); attr.extend;attr(attr.count) := type_row; end loop;
end selectAttr;

④存储过程的使用 定义一个函数来使用它

create or replace function testPro(objType in varchar2) return attr_table isattr attr_table:=attr_table();
beginselectAttr(objType, attr);return(attr);
end testPro;

⑤调用这个函数

select testPro('truck') from dual;
-- 当函数返回结果为 Table 时, 还可以这么调用
select * from table(testPro('truck'));
 

刚开始写博文,有不足之处请指出;觉得文章实用,请在右上方点个赞


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

相关文章:

  • layui--记录
  • 【校招VIP】测试技术考点之单元测试集成测试
  • 【Redis专题】Redis核心数据结构实战与高性能原理解析
  • 常见的几种排序算法
  • 动态贴纸、美颜SDK与AR:创造独特的互动体验
  • 〔021〕Stable Diffusion 之 提示词反推、自动补全、中文输入 篇
  • 如何实现响应式布局
  • HTML <tr> 标签
  • 点云从入门到精通技术详解100篇-点云多尺度分类网络
  • 电脑怎么设置定时关机,2个简单的操作
  • Uboot指令与烧录
  • Visual Studio中使用预编译头文件
  • C语言:选择+编程(每日一练Day15)
  • 确定Mac\Linux系统的架构类型是 x86-64(amd64),还是 arm64 架构
  • Python脚本
  • Kotlin的遍历方法
  • AskIt: Unified Programming Interface for Programming with Large Language Models
  • 【wireshark抓取数据包-PGSQL协议】
  • 【idea学习】
  • ZooKeeper数据模型/znode节点深入
  • 容器编排工具的比较:Kubernetes、Docker Swarm、Nomad
  • nginx--技术文档--架构体系--底层核心-原理
  • Java23种设计模式之【单例模式】
  • SQLserver基础入门理论(超基础)二
  • macbookpro怎么删除软件没有鼠标
  • 华为数通方向HCIP-DataCom H12-821题库(单选题:241-260)
  • PHP8内置函数中的变量函数-PHP8知识详解
  • 9月3日,每日信息差
  • 2023年了,java后端还有未来吗?
  • 使用cmake,将github上的某一个库进行集成到vs2022上