Oracle数据库 存储过程入门

article/2025/11/5 22:12:08

oracle存储过程:简单入门
一、定义

存储过程是一组为了完成特定功能的SQL语句,经编译后存储在数据库中。点击查看优缺点。

二、存储过程简单入门

***第一个存储过程:打印hello word, my name is stored procedure内容***
create or replace procedure myDemo01
as
begindbms_output.put_line('hello word, my name is stored procedure');
end;

create or replace procedure:关键字用来创建或覆盖一个原有的存储过程。

myDemo01:自定义的存储过程的名字。
as:关键字。
注:
在存储过程(PROCEDURE)和函数(FUNCTION)中没有区别;

   在视图(VIEW)中只能用AS不能用IS;在游标(CURSOR)中只能用IS不能用AS。

begin:关键字。
dbms_output.put_line(‘hello word, my name is stored procedure’); 输出内容。
**end;**关键字。

<span style="font-size: 15px"><strong>存储过程的调用</strong></span>declare<br>beginmyDemo01;
end;beginmyDemo01;--在此处也可使用myDemo01();完成存储过程的调用
end;

两种方式可以完成存储过程的调用,分别为声明declare关键字和不声明declare关键字。执行的结果如下所示
在这里插入图片描述
第二个存储过程:变量声明,赋值

create or replace procedure myDemo02
as
name varchar(10);--声明变量,注意varchar需要指定长度
age int;
beginname:='xiaoming';--变量赋值age:=18;dbms_output.put_line('name='||name||', age='||age);--通过||符号达到连接字符串的功能
end;

第三个存储过程:带有参数的存储过程

create or replace procedure myDemo03(name in varchar,age in int)
as
begindbms_output.put_line('name='||name||', age='||age);
end;beginmyDemo03('xiaoming',18);
end;

在调用存储过程时,如果存储过程没有参数,调用时括号()可以不带。

    存储过程带参数需要注意参数的传递参数时的一致性,按顺序依次传递。

第四个存储过程:实参形参问题

create or replace procedure myDemo04(name in varchar,age in int)
as
begindbms_output.put_line('name='||name||', age='||age);
end;declarename varchar(10);age int;
beginname:='xiaoming';age:=18;myDemo04(name=>name,age=>18);--此时不能myDemo04(name=>name,18),不能完成调用。
end;

注;在调用存储过程时,=>前面的变量为存储过程的形参且必须于存储过程中定义的一致,而=>后的参数为实际参数。当然也不可以不定义变量保存实参

第五个存储过程:in,out参数问题

create or replace procedure myDemo05(name out varchar,age in int)
as
begindbms_output.put_line('age='||age);select 'xiaoming' into name from dual;
end;declarename varchar(10);age int;
beginmyDemo05(name=>name,age=>10);dbms_output.put_line('name='||name);
end;

注:in代表输入,out用于输出

第六个存储过程:异常问题,执行结果见下

create or replace procedure mydemo0006
as
age int;
beginage:=10/0;dbms_output.put_line(age);exception when others   thendbms_output.put_line('error');
end;beginmydemo0006();
end;

最近在学习Oracle然后其中学习的一些简单的东西


http://chatgpt.dhexx.cn/article/NMAgLEyK.shtml

相关文章

数据库储存过程超简单实例

网上看了半天都没找到一个完整储存过程从创建到调用的实例,于是自己写了一个简单的实例. 数据库创建存储过程,定义个函数 格式如下,开头DELIMITER //和结尾/DELIMITER 和BEGIN 和 END 是固定格式 定了一个叫test2()的方法(在mapper.xml中会指定这个函数名),in表示入参,varc…

DM8达梦数据库存储过程函数使用

DM8数据库的过程函数的编写主要分为4个部分&#xff1a;过程头部分&#xff0c;声明定义部分&#xff0c;执行部分和异常处理部分。在编写方面&#xff0c;过程和函数的主要区别还是函数可以返回一个值&#xff0c;但是过程没有。下面就从这4个部分来分别介绍过程的编写和一些常…

数据库:存储过程实验

一、实验目的及要求 目的 掌握存储过程的编写与调用 要求 掌握存储过程的编写&#xff1b;掌握存储过程的调用 二、实验条件 安装有SQL Server2014数据库的计算机 三、实验内容 使用事务、锁和游标&#xff1b;编写和使用存储过程&#xff1b;使用触发器 四、实验结果…

达梦数据库存储过程注意事项

引言&#xff1a;达梦数据库是一款国产数据库&#xff0c;在语法使用和函数方面和MySQL&#xff0c;Oracle有着很多相似的地方。但是也有一 些细微的区别。 1、先看一下达梦数据库的存储过程模板&#xff1a; CREATE OR REPLACE FUNCTION getName() AS OR IS DECLARE ... BEGI…

MySQL数据库-存储过程详解

存储过程简单来说&#xff0c;就是为以后的使用而保存的一条或多条MySQL语句的集合。可将其视为批件&#xff0c;虽然它们的作用不仅限于批处理。在我看来&#xff0c; 存储过程就是有业务逻辑和流程的集合&#xff0c; 可以在存储过程中创建表&#xff0c;更新数据&#xff0c…

EXTJS5 入门指南

EXTJS5带领EXTJS步入了新的时代&#xff0c;Ext JS 5已经不再支持IE6、IE7和其他旧版本的浏览器了&#xff0c;这样可以显著减少跨整个框架的逻辑和样式设置。再加上额外的优化&#xff0c;Ext JS 5已经为企业级的Web应用程序迈出了惊人的一步。 EXTJS5不在和EXTJS4一样&#x…

ExtJS-入门(转载自http://www.blogjava.net/puras/archive)

2010 - 01 - 13 缩略显示 ExtJS-入门&#xff08;转载自http://www.blogjava.net/puras/archive&#xff09; 文章分类:Web前端 在ExtJS里最常用的,应该就是Ext.onReady这个方法了, 而且它也可能是你学习ExtJS所接触的第一个方法,这个方法在当前的DOM加载完毕后自动调用,保证…

Ext JS 6学习文档–第1章–ExtJS入门指南

Ext JS 入门指南 前言 本来我是打算自己写一个系列的 ExtJS 6 学习笔记的&#xff0c;因为 ExtJS 6 目前的中文学习资料还很少。google 搜索资料时找到了一本国外牛人写的关于 ExtJS 6 的电子书 [Ext JS 6 By Example]。这份资料在 PACKT 上卖 35.99 刀的&#xff0c;当然了万…

Extjs——初步学习

最近在系统学习Extjs框架&#xff0c;从刚一开始接触Extjs到现在发现对Extjs越来越喜欢了。刚开始只是想在页面上实现一个展示大量图片的功能&#xff0c;就像在线订餐系统展示菜单的效果那样&#xff0c;每幅图片上都有一些必要的信息、动作、链接等。效果如下图&#xff1a; …

Extjs基础(一)

1.1基础学习 说明&#xff1a; 本示例的所有代码均在extjs6.2版本上测试通过,学习内容来源于官方文档和自己的一些见解。 1.1.1window组件 简单的一个window面板&#xff1a; title: 窗口标题,height: 220, //可以使用百分比width: 220, html: 内容部分,resizable: true, //…

ExtJS基础入门

公司需要用ExtJS搭建系统框架&#xff0c;然后&#xff0c;这个很老了&#xff0c;没有用过 。 开始进行时候一脸懵逼&#xff0c;因为搜索了相关的知识&#xff0c;面临如下问题&#xff1a; 1.版本太多&#xff0c;从一到六&#xff0c;不知从何入手 2.提供的教程和视频都…

extjs初学者教程

layout 1.面板 (1)类结构 Ext.Base Ext.AbstractComponent Ext.Component Ext.container.AbstractContainer Ext.container.Container Ext.panel.AbstractPanel …

ext.js入门

序言&#xff1a;extjs 是一种OOP语言&#xff0c;可以按照学习Java 的过程来进行学习&#xff0c;可以类比 Java中的图像界面JWT来进行学习。 工具 这些是sencha提供的用于Ext JS应用程序开发的工具&#xff0c;主要用于生产级别。Sencha Cmd Sencha CMD是一个提供Ext JS代码…

EXTJS入门教程及其框架搭建

EXTJS是一个兼容AJAX的前台WEB UI的框架&#xff0c;在普通的HTML文件的 BODY 元素中无须写任何HTML代码&#xff0c;就能产生相应的表格等元素。 原创不易&#xff0c;转载请注明出处&#xff1a;EXTJS入门教程及其框架搭建 代码下载地址:http://www.zuidaima.com/share/17244…

EXTJS详细教程

布局和容器 普通布局 Ext.create(Ext.panel.Panel, {renderTo: Ext.getBody(),width: 400,height: 300,title: Container Panel,items: [{xtype: panel,title: Child Panel 1,height: 100,width: 75%}, {xtype: panel,title: Child Panel 2,height: 100,width: 75%}] });列布…

国嵌视频,买了就是坑

国嵌买视频的&#xff0c;更新慢&#xff0c;谁敢抱怨&#xff0c;踢你&#xff0c;锁你账号&#xff0c;真无语&#xff0c;安卓没录完&#xff0c;3月拖到6月&#xff0c;拖到10月&#xff0c;引起公愤了&#xff0c;就说送路由视频&#xff0c;结果路由视频还没录呢&#xf…

【我爱嵌入式】

童鞋们 自动化嵌入式复习 总结了期末考试简答题的内容 第一章 嵌入式的定义 以应用为中心&#xff0c;以计算机技术为基础&#xff0c;软硬件可裁剪&#xff0c;对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。嵌入式系统主要由嵌入式微处理器、外围硬件设备…

嵌入式教程:什么是嵌入式?

每每有小白接触嵌入式时&#xff0c;总认为是装修风格的一种&#xff0c;类似嵌入式壁炉之类的&#xff0c;而一些有过了 解的朋友可能会以为嵌入式教程就是教单片机的&#xff0c;学习后才发现单片机只是基础。 简单来说&#xff0c;嵌入式就是需要嵌入某些东西里面&#xff…

国嵌视频学习笔记---linux内核开发1

一、linux内核简介 1.linux系统由两部分组成&#xff1a;内核空间和用户空间。 2.用户空间包括&#xff1a;用户应用程序和C库 3.内核空间包括&#xff1a;系统调用接口、内核和体系结构相关代码。 4.ARM处理器7种工作模式&#xff1a;用户模式&#xff0c;快速中断模式、外…

国嵌学习——ARM

从NOR启动&#xff1a;在片选0位置放置的是2M的nor flash&#xff0c;在片选6位置放置的是内存0x30000000 ARM工作模式 ARM处理器的运行模式可以通过软件改变&#xff0c;也可以通过外部中断或异常处理改变。应用程序运行在用户模式下&#xff0c;当处理器运行在用户模式下时&…