oracle PROCEDURE 存储过程

Oracle之存储过程 所谓存储过程(),就是一组用于完成特定数据库功能的SQL,该SQL语句集经过编译后存储在数据库系统中。在使用时候,用户通过指定已经定义的存储过程名字并给出相应的存储过程参数来调用并执行它,从而完成一个或一系列的数据库操作。 阅读详情

oracle 存储过程 

1.基本结构
CREATE OR REPLACE PROCEDURE 存储过程名字
(
    参数1 IN NUMBER,
    参数2 IN NUMBER
) IS
变量1 INTEGER :=0;
变量2 DATE;
BEGIN

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;

8.用pl/sql developer debug
  连接数据库后建立一个Test WINDOW
  在窗口输入调用SP的代码,F9开始debug,CTRL+N单步调试
 
转载:

oracle 存储过程

关键字: oracle 存储过程
存储过程创建语法:

       create or replace procedure 存储过程名(param1 in type,param2 out type)

as

变量1 类型(值范围);

变量2 类型(值范围);

Begin

    Select count(*) into 变量1 from 表A where列名=param1;

    If (判断条件) then

       Select 列名 into 变量2 from 表A where列名=param1;

       Dbms_output。Put_line(‘打印信息’);

    Elsif (判断条件) then

       Dbms_output。Put_line(‘打印信息’);

    Else

       Raise 异常名(NO_DATA_FOUND);

    End if;

Exception

    When others then

       Rollback;

End;



注意事项:

1,  存储过程参数不带取值范围,in表示传入,out表示输出

2,  变量带取值范围,后面接分号

3,  在判断语句前最好先用count(*)函数判断是否存在该条操作记录

4,  用select 。。。into。。。给变量赋值

5,  在代码中抛异常用 raise+异常名



以命名的异常

命名的系统异常                          产生原因

ACCESS_INTO_NULL                   未定义对象

CASE_NOT_FOUND                     CASE 中若未包含相应的 WHEN ,并且没有设置

ELSE 时

COLLECTION_IS_NULL                集合元素未初始化

CURSER_ALREADY_OPEN          游标已经打开

DUP_VAL_ON_INDEX                   唯一索引对应的列上有重复的值

INVALID_CURSOR                 在不合法的游标上进行操作

INVALID_NUMBER                       内嵌的 SQL 语句不能将字符转换为数字

NO_DATA_FOUND                        使用 select into 未返回行,或应用索引表未初始化的



TOO_MANY_ROWS                      执行 select into 时,结果集超过一行

ZERO_DIVIDE                              除数为 0

SUBSCRIPT_BEYOND_COUNT     元素下标超过嵌套表或 VARRAY 的最大值

SUBSCRIPT_OUTSIDE_LIMIT       使用嵌套表或 VARRAY 时,将下标指定为负数

VALUE_ERROR                             赋值时,变量长度不足以容纳实际数据

LOGIN_DENIED                           PL/SQL 应用程序连接到 oracle 数据库时,提供了不

正确的用户名或密码

NOT_LOGGED_ON                       PL/SQL 应用程序在没有连接 oralce 数据库的情况下

访问数据

PROGRAM_ERROR                       PL/SQL 内部问题,可能需要重装数据字典& pl./SQL

系统包

ROWTYPE_MISMATCH                宿主游标变量与 PL/SQL 游标变量的返回类型不兼容

SELF_IS_NULL                             使用对象类型时,在 null 对象上调用对象方法

STORAGE_ERROR                        运行 PL/SQL 时,超出内存空间

SYS_INVALID_ID                         无效的 ROWID 字符串

TIMEOUT_ON_RESOURCE         Oracle 在等待资源时超时 
 
SAP 管道业务(Pipeline Procurement)是用于水、电、气等不间断供应且无库存管理的物料采购场景,核心是消耗即记账、无库存持有,通过 MM-FI 集成实现实时负债与成本过账 摘要:SAP管道业务适用于水电气等无库存管理的物料采购场景,通过消耗即记账机制实现实时负债与成本过账。核心配置包括创建PIPE物料类型(无库存管理)、维护管道采购信息记录、配置自动记账科目等。SAP PO可集成外部系统实现流程自动化,如自动过账提取数据、发票校验等。实施要点在于物料主数据、信息记录和科目确定的精准配置,以及PO接口的可靠对接,最终构建端到端的高效采购与财务结算体系。 阅读详情

相关推荐

别再为电路自激发愁了:手把手教你用吸波材料搞定微波腔体谐振(附HFSS仿真设置)

本文详细解析了微波腔体谐振问题的工程解决方案,重点介绍了吸波材料的选型、安装工艺及HFSS仿真设置。通过实际案例和计算工具,帮助射频工程师有效抑制腔体自激,提升系统稳定性。特别适用于35GHz毫米波雷达等高频电路设计场景。

weixin_42662293的博客 384

Oracle-procedure/cursor解读

procedure系列Oracle存储过程和自定义函数Oracle-procedure解读procedure概述存储过程( Stored Procedure )是一组为了完成特定功能的 SQL 语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是由流控制和 SQL 语句书写的过程,这个过程经编译和优化后存储在数据库服务器中,应用程序使用时

小工匠 2万+

从Oracle到腾讯TDSQL数据库升级技术分享

腾讯TDSQL(Tencent Distributed SQL)是一款兼具关系数据库和NoSQL数据库优点的新型数据库,文章主要分享oracle升级为TDSQl数据库技术经验。

u012372850的专栏 2616

oracle----过程(procedure)介绍和使用

oracle----过程(procedure)介绍和使用 存储过程是一组为了完成特定功能的sql语句集合,经过编译后存储在数据库中。用户通过制定存储过程的名字并给出参数(如果该过程带有参数)来执行他。 存储过程是由流控制和sql语句书写的过程,这个过程经过编译和优化后存储在数据库服务器中,应用程序使用时只要调用即可。 存储过程就是具有名字的一段代码,用来完成一个特定的功能 创建的存储过程保存在数据库的数据字典中 在oracle中,若干个有联系的过程可以组合在一起构成程序包。 procedure优点 存储

qq_43508272的博客 7327

Unreal 5 MetaHuman插件全流程:从安装到角色动画生成

本文详细介绍了Unreal 5中MetaHuman插件的全流程使用指南,从安装配置到角色动画生成。通过Quixel Bridge下载预设角色,利用面部捕捉技术赋予数字人模型生命力,并提供材质编辑、性能优化等进阶技巧,帮助用户快速创建照片级真实的虚拟角色。

weixin_29009081的博客 832

Cisco Packet Tracer 7.3免登录技巧:3种方法快速跳过注册界面(附详细截图)

本文针对Cisco Packet Tracer 7.3启动时遇到的登录界面问题,提供了三种合法高效的解决方案。详细介绍了如何利用官方访客模式快速启动、注册思科账号实现一劳永逸登录,以及通过调整本地安装配置优化启动流程,帮助网络学习者与备考者绕过繁琐步骤,快速进入实验环境。

weixin_29305337的博客 744

Oracle学习之存储过程

存储过程 即是将具有某种特定功能的SQL语句集,存储在数据库中,一次编译后续直接使用不在编译。用户通过存储过程的名字并给出参数来调用存储过程。

ssauuuuuu的博客 4903

Realtek RTD1319D芯片解析:H.266与AV1双解码的机顶盒SoC

视频编解码技术是数字媒体传输的核心,H.266/VVC作为新一代标准,相比H.265提升50%压缩效率,显著降低带宽需求。其实现原理依赖于专用硬件解码器和并行处理架构,在超高清视频传输领域具有重要价值。Realtek RTD1319D作为首款商用H.266处理器,采用异构计算设计,集成四核ARM CPU和独立视频处理单元,同时支持AV1解码,兼顾市场兼容性。该SoC特别适合4K机顶盒、数字标牌等应用场景,其HDMI 2.1a接口和DVB解调器为超高清内容传输提供完整解决方案。开发时需注意散热设计和内存配置优

weixin_42591413的博客 673

Oracle存储过程(Procedure)--------------提高程序执行的效率

一、什么是存储过程 所谓存储过程,就是一段存储在数据库中实现某种功能的程序,其中包含一条或多条SQL语句,但是它的定义方式和PL/SQL中的块、包等有所区别。存储过程可以通俗地理解为存储在数据库服务器中的封装了一段或多段SQL语句的PL/SQL代码块。在数据库中有一些系统默认的存储过程,可以直接通过存储过程的名称进行调用。另外,存储过程还可以在其他编程语言中调用,例如:Java,C#,VB等。 ...

wang7241的博客 4523

UG NX二次开发(C++)-NX2406系列二次开发编程模板配置

前面已经写了有关UG NX二次开发编程模板配置的文章,但是由于NX2406/2412系列的版本中,在UGOpen文件夹中没有了vs_files文件夹了,而是采用了VSIX Project的方式配置(其适用于VS2019),在VS2022中不能正确的配置。我结合以前配置模板的经验和现在的配置方式讲一下NX2406系列二次开发编程模板的配置。我把相应的编程模板放在资源文件UG NX二次开发编程模板(基于NX2406版本制作)中,方便大家下载使用。

GimiGimmy 2641

【知识点讲解】大模型参数量与计算量(FLOPs)估算方法

指标参数量 (Params)计算量 (FLOPs)含义模型的大小,静态模型的计算复杂度,动态决定因素模型结构(宽度、深度)模型结构 +输入数据(B, S)影响内存占用、磁盘空间运行速度、能耗单位M (百万), B (十亿)工具thopptflopstorchinfothopptflopsfvcore重要提示FLOPs ≠ 速度:FLOPs 是理论计算量。实际速度还受内存带宽 (Memory Bandwidth)并行度硬件架构等因素严重影响。

AI浩 2099

Oracle——存储过程 procedure 的创建

 被内容来自《oracle从入门到精通——明日科技》一书   存储过程是一种命名的PL/SQL程序快,存储过程被保存在数据库中,它不可以被SQL语句直接执行或调用,只能通过EXECUT命令执行或在PL/SQL程序快中内部调用。由于存储过程是已经编译好的代码,所以在被调用或引用时,其执行效率非常高。本次所有操作均在Oracle 19c本版。 目录 1.创建存储过程   1.1.创建存储过程的语法   1.2.下面通过一个实际例子来解释如何创建一个存储过程。   1.3.执行存储过程 2.存储过程

whxjason的博客 1万+

Windows原生与WSL2环境下OpenClaw性能与兼容性的对比分析研究

本文对比分析了Windows原生环境与WSL2环境下运行OpenClaw的性能与兼容性。Windows原生环境提供深度系统集成、图形界面支持和硬件加速优势,适合需要Windows生态集成的用户;WSL2则提供接近原生Linux的性能体验,兼容Linux工具链,适合开发者和跨平台需求。文章详细介绍了两种环境下的推荐硬件配置、系统版本选择及必备工具,并提供了具体的部署步骤指南。研究表明,两种环境各有适用场景,用户可根据需求选择最适合的部署方式。

一键难忘的博客 1218

oracle自动导出Function、procedure等存储过程;

oracle自动导出Function、procedure等存储过程; 2011-02-10 11:15 1312人阅读 评论(1) 收藏 举报 function存储oracleobjectfileuser 1.创建directory create or replace directory BCCCGC   as 'd:/ccgc'; grant read,w

lazhu159357的专栏 828

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Oracle procedure 基本语法 (存储过程)

Oracle procedure 基本语法 转自:http://lorry1113.javaeye.com/blog/513851 关键字: oracle 存储过程 1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字 ( 参数1 IN NUMBER, 参数2 IN NUMBER ) IS 变量1 INTEGER :=0; 变量2 DATE; ...

Tangerine_bisto的博客 1万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Oracle Procedure 存储过程

Oracle/PLSQL: Creating Procedures: [url]http://www.techonthenet.com/oracle/procedures.php[/url][quote]The syntax for a procedure is: [code="sql"]CREATE [OR REPLACE] PROCEDURE procedure_name [ (...

Wuaner的博客 92

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

oracle如何在所有procedure里搜索某些关键字, 存储过程

select distinct name from USER_SOURCE where type = 'PROCEDURE' and text like '%你要查找的内容 %'

wangduqiang747的博客 1561

Oracle 存储过程详解(procedure)

文章目录1 概述2 语法2.1 创建2.2 调用2.3 修改、删除3 Debug 1 概述 1. 存储过程是什么:事先经过编译并存储在数据库中的一套 sql 语句 2. 存储过程的优点 (1) 提高 sql 执行效率 :'预编译' 后存储于内存中,故使用时,无需再次编译 (2) 减少 '网络流量(I/0)':减少 sql 与服务器之间的上下文交换 (3) 提高系统的 '安全性' :减少 sql 注入的危险、权限控制 3. 存储过程的缺点 (1) 增加数据库服务器的 '负荷'

鱼丸丶粗面 1万+

Oracle - Procedure存储过程

【求所有学生个数的存储过程】 SET SERVEROUTPUT ON; CREATE OR REPLACE PROCEDURE STUDENT_NUMBER AS TOTAL NUMBER(3); BEGIN SELECT COUNT(SNO) INTO TOTAL FROM STUDENT; DBMS_OUTPUT.PUT_LINE('学生总人数:'||TOTAL); E...

⚡ 1万+

Oracle Procedure存储过程简介

在Oracle中,可以在数据库中定义子程序,这种程序块称为存储过程(Procedure)。它存放在数据字典中,可以在不同用户和应用程序之间共享,可实现程序的优化和重用。使用存储过程的优点是:(1)    过程在服务器端运行,执行速度快;(2)    过程执行一次后代码就驻留在高速

Magister_Feng的专栏 1490

Oracle procedure 存储过程

Oracle procedure 存储过程 Oracle procedure 基本语法: CREATE [OR REPLACE] PROCEDURE 存储过程名[(参数 [IN|OUT|INOUT] 数据类型...)] {IS|AS} [说明部分,例如:变量声明] BEGIN 可执行部分 [EXCEPTION 错误处理部分] END [存储过程名]; / -- 创建存储过程 -- create procedure 'testproc' create or replace procedure tes.

sunny05296的博客 1206

oracle 存储过程 Stored Procedure

存储过程 Stored Procedure 存储过程(Stored Procedure)是在大型数据库系统中, 一组为了完成特定功能的SQL 语句集,存储在数据库中, 经过第一次编译后再次调用不需要再次编译, 用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。 存储过程是数据库中的一个重要对象 Oracle存储过程基本语法: CREATE OR REPLACE PROCEDURE 存储过程名 AS B

m0_46237405的博客 873

sqlplus 执行 oracle 存储过程 分页,oracle sqlplus 创建和调用存储过程(procedure)

oracle存储过程 语法格式CREATE OR REPLACE PROCEDURE procedureNameISDECLARE.......BEGIN...........END;开始使用su - oraclesqlplusSQL*Plus: Release 11.2.0.1.0 Production on 星期二 5月 15 13:58:04 2012Copyright (c) 1982, ...

weixin_29018335的博客 640

Oracle Procedure 存储过程

一、块 块是pl/sql组成的基本单元,本篇讲述存储过程,鉴于2者有很高的相似性,且是其中一种块,所以在此做一个简单的块讲述

基于Oracle11G 1万+

【Oracle系列】- 存储过程(Stored Procedure)

存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL语句集,存储过程在数据库中,经过第一次编译后再次调用不需要二次编译。用户通过指定的存储过程名称应传给参数来调用完成。存储过程就是解决特定问题,有先后顺序的一组SQL语句集合。在Oracle数据库中存储过程是Procedure。Oracle存储过程相对于Sql Service 和 Mysql比较复杂,难度较大。在解决实际问题需要根据场景选择响应的存储过程方案。

记录总结工作过往 3522

关于对oracle procedure存储过程的小结

关于对oracle procedure存储过程的小结一.基本语法: CREATE OR REPLACE PROCEDURE + 存储过程名字 + ( 参数1 IN/OUT 数据类型, 参数2 IN/OUT 数据类型 ) AS 变量1 数据类型(取值范围); 变量2 数据类型(取值范围); Begin可执行语句;Exception异常处理程序;End; 注释: 1.参数的IN表

solipsismlee的博客 528
上一篇: oracle 两个时间相减得
devin-deng
博客等级 码龄19年 8粉丝 0原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值