DM存储过程和存储函数
1存储过程存储过程是事先经过编译并存储在数据库中的一段SQL语句的集合是SQL语言层面的代码封装与重用可以接收参数也可以返回数据。语法规则CREATE [OR REPLACE] PROCEDURE [IF NOT EXISTS] 过程声明 AS | IS 模块体过程声明 :: 存储过程名定义 [WITH ENCRYPTION][(参数名参数模式参数类型 [默认值表达式] )][调用权限子句]模块体 :: [声明部分] BEGIN 执行部分[异常处理部分] END [存储过程名]声明部分 ::[DECLARE]变量声明|异常变量声明|游标定义|子过程定义|子函数定义;1.1样例1.1.1创建--不带参数的存储过程 CREATE PROCEDURE P0 AS BEGIN PRINT HELLO; END; --带参数的存储过程 CREATE PROCEDURE P1(A1 IN INT) AS BEGIN PRINT A11||A11; END;1.1.2调用--不带参数以下4种方式均可调用 P0; P0(); CALL P0; EXECUTE P0; --带参数以下2种方式均可调用 P1(1); CALL P1(1); EXECUTE P0(1);--语法分析出错EXECUTE不能带参数1.1.3重编译用于确认一个存储模块是否还有效。当指定 CASCADE 后将级联重编译所有直接或间接引用该存储模块的对象需要考量影响范围建议谨慎使用。ALTER PROCEDURE P1 COMPILE [CASCADE];1.1.4删除DROP PROCEDURE [IF EXISTS] P1;1.2参数分类存储模块及模块中定义的子模块都可以带参数用来给模块传送数据及向外界返回数据。在存储过程或存储函数中定义一个参数时必须说明名称、参数模式和数据类型。三种可能的参数模式是IN(缺省模式)、OUT 和 IN OUT意义分别为IN输入参数用来将数据传送给模块OUT输出参数用来从模块返回数据到进行调用的模块IN OUT既作为输入参数也作为输出参数。1.2.1无参数CREATE PROCEDURE P1 AS A1 INT; BEGIN A1:1; PRINT A1; END; P1;1.2.2IN参数CREATE PROCEDURE P2(A2 IN INT) AS A1 INT; BEGIN A1:A21; PRINT A1; END; P2(3);1.2.3OUT参数DECLARE A3 INT; PROCEDURE P3(A2 OUT INT) AS A1 INT; BEGIN A1:A3; A2:A11; END P3; BEGIN A31; P3(A3); PRINT A3; END;1.2.4IN OUT参数DECLARE A3 INT; PROCEDURE P4(A2 IN OUT INT) AS A1 INT; BEGIN A1:A21; A2:A11; PRINT A1:||A1; PRINT A2:||A2; END P4; BEGIN A3:3; P4(A3); PRINT A3:||A3; END; CREATE PROCEDURE P5(a IN OUT INT) AS b INT:10; BEGIN a:ab; PRINT a; EXCEPTION WHEN OTHERS THEN NULL; END; P5(3);2存储函数和存储过程类似只有函数声明部分多了返回值和可选参数CREATE [OR REPLACE] FUNCTION [IF NOT EXISTS] 函数声明 AS_OR_IS 模块体函数声明 :: 存储函数名定义 [WITH ENCRYPTION][FOR CALCULATE][(参数名参数模式参数类型 [默认值表达式])]RETURN 返回数据类型 [调用选项子句][PIPELINED]2.1样例2.1.1创建可以不带参数但必须有返回值--不带参数的函数 CREATE OR REPLACE FUNCTION F0 RETURN INTEGER AS BEGIN PRINT HELLO; RETURN 1;--可以没有RETURN语句那么返回值就是NULL END; --带参数的函数 CREATE OR REPLACE FUNCTION F1(C IN INT) RETURN INTEGER AS BEGIN RETURN C*2; END;2.1.2调用--不带参数以下4种方式均可调用 F0;--返回值可以赋值给变量 F0();--返回值可以赋值给变量 CALL F0;--无返回值 SELECT F0();--输出返回值 --带参数以下3种方式均可调用 F1(3);--返回值可以赋值给变量 CALL F1(3);--无返回值 SELECT F1(3);--输出返回值2.1.3重编译用于确认一个存储模块是否还有效。当指定 CASCADE 后将级联重编译所有直接或间接引用该存储模块的对象需要考量影响范围建议谨慎使用。ALTER FUNCTION P1 COMPILE [CASCADE];2.1.4删除DROP FUNCTION [IF EXISTS] P1;3区别存储函数与存储过程在结构和功能上十分相似主要的差异在于存储过程没有返回值调用者只能通过访问 OUT 或 IN OUT 参数来获得执行结果而存储函数有返回值它把执行结果直接返回给调用者存储过程中可以没有返回语句而存储函数必须通过返回语句结束不能在存储过程的返回语句中带表达式而存储函数必须带表达式存储过程不能出现在一个表达式中而存储函数可以出现在表达式中。

相关新闻

赛迪报告:中国制造业AI Agent市场规模达135亿的底层逻辑——大模型落地工业现场的技术路径与选型实务

赛迪报告:中国制造业AI Agent市场规模达135亿的底层逻辑——大模型落地工业现场的技术路径与选型实务

2026年被行业公认为智能体(AI Agent)规模化落地的元年。根据赛迪顾问发布的最新报告,中国制造业AI Agent市场规模已正式跨越135亿元大关。这一数据不仅是量化的增长指标,更预示着AI技术在工业领域正经历从“对话式辅助”向“自主化…

2026/10/12 1:16:17 阅读更多 →
AI辅助编程工程化实践:从Vibe Coding到Harness Engineering

AI辅助编程工程化实践:从Vibe Coding到Harness Engineering

1. 项目概述:当“AI写代码”成为日常,我们如何优雅地“喝咖啡”?“AI写代码我喝咖啡”,这句在开发者社区里流传甚广的梗,精准地描绘了当下许多工程师的日常:我们满怀期待地将需求描述扔给Copilot、Cursor或…

2026/10/6 16:18:51 阅读更多 →
第二届精准医学研讨会暨大队列组学研究学术研讨会圆满落幕!SomaScan 4K蛋白质组重磅国内首发!

第二届精准医学研讨会暨大队列组学研究学术研讨会圆满落幕!SomaScan 4K蛋白质组重磅国内首发!

2026年8月1日,由中国科学院上海营养与健康研究所、上海中科新生命生物科技有限公司联合主办的第二届精准医学研讨会暨大队列组学研究学术研讨会于上海顺利召开。会议采用线上线下同步模式,线下参会两百余人,线上观看量破万,汇聚泰…

2026/10/11 8:33:09 阅读更多 →

最新新闻

ESP32 ModbusTCP分片缓存设计与实现

ESP32 ModbusTCP分片缓存设计与实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 1:15:40 阅读更多 →
Oracle 19c OCP原题精讲:多租户、RMAN与Flashback避坑指南

Oracle 19c OCP原题精讲:多租户、RMAN与Flashback避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 1:15:40 阅读更多 →
驱动开发入门指南:从字符设备到内核调试的完整路径

驱动开发入门指南:从字符设备到内核调试的完整路径

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 1:15:40 阅读更多 →
5G毫米波OTA测试攻略:FR2终端整机空口验收与暗室避坑指南

5G毫米波OTA测试攻略:FR2终端整机空口验收与暗室避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 1:15:40 阅读更多 →
嵌入式跨界三重门槛:机电硬件、纯软抽象与工科系统观

嵌入式跨界三重门槛:机电硬件、纯软抽象与工科系统观

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 1:15:40 阅读更多 →
主驱逆变器芯片选型与量产实战:从AEC-Q100到ASIL D的工程落地

主驱逆变器芯片选型与量产实战:从AEC-Q100到ASIL D的工程落地

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 1:14:39 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →