oracle存储过程的基本语法
1、存储过程的语法结构:
CREATE OR REPLACE PROCEDURE 过程名 AS
声明语句段;
BEGIN
执行语句段;
EXCEPTION
异常处理语句段;
END;
2、SELECT INTO STATEMENT
将SELECT查询的结果存入到变量中,可以同时将多个列存储多个变量中,必须有一条记录,否则抛出异常(如果没有记录抛出NO_DATA_FOUND)
例如:
BEGIN
SELECT col1,col2 INTO 变量1,变量2 FROM typestruct where xxx;
EXCEPTION
WHEN NO_DATA_FOUND THEN xxxx;
END;
3、IF 判断
IF V_TEST=1 THEN
BEGIN
do something
END;
END IF;
4、WHILE循环
WHILE V_TEST=1 LOOP
BEGIN
XXXX
END;
END LOOP;
5、变量赋值
V_TEST := 123;
6、用FOR IN 使用CURSOR
...
IS
CURSOR cur IS SELECT * FROM xxx;
BEGIN
FOR cur_result IN cur LOOP
BEGIN
V_SUM :=cur_result.列名1+cur_result.列名2
END;
END LOOP;
END;
7、带参数的CURSOR
CURSOR C_USER(C_ID NUMBER) IS SELECT NAME FROM USER WHERE TYPEID=C_ID;
OPEN C_USER(变量值);
LOOP
FETCH C_USER INTO V_NAME;
EXIT FETCH C_USER%NOTFOUND;
do something
END LOOP;
CLOSE C_USER;
创建存储过程实例
CREATE OR REPLACE PROCEDURE stu_proc as
--声明语句段
v_name varchar2(20);
BEGIN
--执行语句段
SELECT o.sname INTO v_name FROM student o WHERE o.id=1;
DBMS_OUTPUT.put_line(v_name);
EXCEPTION
--异常处理语句段
WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.put_line('NO_DATA_FOUND');
END;
--调用存储过程
--CALL stu_proc();
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」