oracle Dbeaver存储过程语法详解

可视化工具 Dbeaver

基本语法

CREATE OR REPLACE  PROCEDURE  addStudent
IS
BEGIN
	INSERT INTO student values(6,2,5,'小陈',22,0);
END addStudent; 

call addStudent();

DROP  procedure getStudent
SELECT * FROM student

CREATE OR REPLACE  PROCEDURE  delStudent
IS
BEGIN
	DELETE FROM student WHERE ID='6';
END delStudent; 

call delStudent();

DROP  procedure delStudent
SELECT * FROM student

CREATE OR REPLACE  PROCEDURE  updateStudent
IS
BEGIN
	UPDATE   student SET  AGE=25 WHERE ID='5';
END updateStudent; 

call updateStudent();

DROP  procedure updateStudent
SELECT * FROM student

单个查询

CREATE OR REPLACE  PROCEDURE  getStudentCount
(studentCount OUT NUMBER)
IS
BEGIN
	SELECT   count(*) INTO studentCount FROM student;
END getStudentCount; 

DECLARE
studentCount NUMBER(38);
BEGIN
	getStudentCount(studentCount);
dbms_output.put_line(studentCount);
END;

DROP  procedure getStudentCount
SELECT * FROM student

多行查询

--定义存储过程,返回游标
CREATE OR REPLACE PROCEDURE  getAllStudent(resule OUT sys_refcursor) IS  --返回游标
BEGIN
	OPEN resule FOR SELECT * FROM student;
END;

--查询存储过程
DECLARE
	cur SYS_REFCURSOR;  --游标
	result_row student%rowtype;
BEGIN
	getAllStudent(cur);
	LOOP
		FETCH cur INTO result_row ;
		EXIT WHEN cur%notfound;
		dbms_output.put_line('ID: '||result_row.ID||' TID: '||result_row.TID||'SID: '||result_row.SID||' SNAME: '||result_row.SNAME||' AGE: '||result_row.AGE||' SEX: '||result_row.SEX);
	END LOOP;
	CLOSE cur;
END;

DROP  procedure getAllStudent
SELECT * FROM student

springboot中使用


一个student表,一个teacher表

有这样一个业务,删除教师,删除其所有学生

CREATE OR REPLACE  PROCEDURE  delTeacher(myTID IN VARCHAR2)
IS
BEGIN
	DELETE FROM teacher WHERE TID=myTID;
END delTeacher;
CREATE OR REPLACE  PROCEDURE  delStudentOfTeacher(myTID IN VARCHAR2)
IS
BEGIN
	DELETE FROM student WHERE TID=myTID;
END delStudentOfTeacher;
<delete id="teacherDelete" parameterType="int">
        {call delTeacher(#{arg0})}
</delete>
<delete id="studentOfTeacherDelete" >
        {call delStudentOfTeacher(#{arg0}) }
</delete>

测试

@Test
    void contextLoads() {
        teacherService.deleteTeacher(2);
    }


CREATE OR REPLACE  PROCEDURE  addTeacher(myTID IN varchar2,myTNAME IN varchar2,myAGE IN varchar2)
IS
BEGIN
	INSERT INTO teacher values(myTID,myTNAME,myAGE);
END addTeacher;
<insert id="teacherAdd">
        call addTeacher(#{arg0},#{arg1},#{arg2})
</insert>

CREATE OR REPLACE  PROCEDURE  updateTeacher(myTNAME IN varchar2,myAGE IN varchar2,myTID IN varchar2)
IS
BEGIN
	UPDATE   teacher SET TNAME=myTNAME,AGE=myAGE WHERE TID=myTID;
END updateTeacher;
<update id="teacherUpdate" >
        call updateTeacher(#{arg0},#{arg1},#{arg2});
</update>

学生增删改

CREATE OR REPLACE  PROCEDURE  addStudent(myID IN varchar2,myTID IN varchar2,mySID IN varchar2,mySNAME IN varchar2,myAGE IN number,mySEX IN varchar2)
IS
BEGIN
	INSERT INTO student values(myID,myTID,mySID,mySNAME,myAGE,mySEX);
END addStudent;
<insert id="studentAdd" >
        call addStudent(#{arg0},#{arg2},#{arg1},#{arg3},#{arg4},#{arg5})
</insert>

CREATE OR REPLACE  PROCEDURE  delStudent(mySID IN varchar2)
IS
BEGIN
	DELETE FROM student WHERE SID=mySID;
END delStudent;
<delete id="studentDelete" >
        call delStudent(#{arg0})
</delete>

CREATE OR REPLACE  PROCEDURE  updateStudent(mySID IN varchar2,mySNAME IN varchar2,myAGE IN NUMBER,mySEX IN varchar2)
IS
BEGIN
	UPDATE   student SET  SNAME=mySNAME,AGE=myAGE,SEX=mySEX WHERE SID=mySID;
END updateStudent;

到此这篇关于oracle Dbeaver存储过程的文章就介绍到这了,更多相关oracle Dbeaver存储过程内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • DBeaver一款替代Navicat的数据库可视化工具

    对于很多开发者来说,Navicat这个软件并不陌生, 相信这个彩虹色图标的软件,有效的帮助了你的开发工作.从前上学的时候,我都是用的都是从网上找来的密钥进行破解的,但是一直在寻找有没有一个能找到一个免费的能完美替代Navicat的工具.今天就给大家推荐一个可以完美替代的工具--DBeaver(Github开源). DBeaver 官网介绍是一款适用于开发人员,数据库管理员,分析师和所有需要使用数据库的人员的免费的多平台数据库工具.支持所有流行的数据库:MySQL,PostgreSQL,SQLit

  • 详解关于Dbeaver的常用操作

    dbeaver是免费和开源(GPL)为开发人员和数据库管理员通用数据库工具. 在开发过程中能够极大的提升我们的工作效率,下面我把我日常使用到的功能描述一下: 1:与plsql相比,Dbeaver没有右击直接查看表注释的功能,但是Dbeaver提供了一个"打开声明"的功能,里面可以查看一些比较实用的内容:表列注释.创建该表的create语句: 2:在一般开发的情况下,往往需要查询的数据条数不会那么地多,要求查询速度响应快,为了使Dbeaver查询速度更快,所以可以设置每次查询数据返回的条

  • DBeaver操作数据表的拷贝的实现

    通过DBeaver工具链接数据库后,我们就可以通过菜单或者命令功能来实现我们想要的目的. (一)创建数据库 新建数据库,如下图所示: --> 在点击"确定"按钮后,可能会遇到失败,此时,我们可以直接通过sql语句来实现,在SQL控制台中输入CREATE DATABASE bien_test,执行sql命令就可以完成创建了. (二)创建数据表 在bien_test数据库下新建表table_a(名称任意,只要是合法的名称即可),如下所示: 当点击右下角的"保存"按

  • 使用Dbeaver远程连接Hive的详细方法

    0. Linux上Hive 启动Hadoop 启动Hive sh hive --service hiveserver2 & 需要总共有7个进程. 1. 下载DBeaver 下载与安装DBeaver过程,略过. https://dbeaver.io/ 建立新链接 编辑驱动 2. 驱动包 1.设置驱动 驱动包需要两个. 如下图. 一个位于:(可以用命令:sz xxx 从linux中下载) 另一个位于hadoop的安装包.:(可以用命令:sz xxx 从linux中下载) 也可以直接去maven网上下

  • 详解DBeaver连接MySQL8以上版本以及解决可能遇到的问题

    数据库MySQL版本8.0.18 下载一个DBeaver.exe 下载地址:https://dbeaver.io/download/ 点击新建 -->数据库连接 -->下一步 选择数据库 -->下一步 -->完成 双击新建的文件会提示下面这样的错误 原因是数据库的时区配置不对 打开cmd以管理员运行 登录数据库 -->输入 show variables like '%time_zone%'; SYSTEM为默认美国时间,解决方法:输入 set global time_zone

  • oracle Dbeaver存储过程语法详解

    可视化工具 Dbeaver 基本语法 增 CREATE OR REPLACE PROCEDURE addStudent IS BEGIN INSERT INTO student values(6,2,5,'小陈',22,0); END addStudent; call addStudent(); DROP procedure getStudent SELECT * FROM student 删 CREATE OR REPLACE PROCEDURE delStudent IS BEGIN DEL

  • sqlserver存储过程语法详解

    存储过程就是作为可执行对象存放在数据库中的一个或多个SQL命令.定义总是很抽象.存储过程其实就是能完成一定操作的一组SQL语句,只不过这组语句是放在数据库中的(这里我们只谈SQL Server).如果我们通过创建存储过程以及在ASP中调用存储过程,就可以避免将SQL语句同ASP代码混杂在一起.这样做的好处至少有三个:第一.大大提高效率.存储过程本身的执行速度非常快,而且,调用存储过程可以大大减少同数据库的交互次数.第二.提高安全性.假如将SQL语句混合在ASP代码中,一旦代码失密,同时也就意味着

  • php 访问oracle 存储过程实例详解

    php 访问oracle 存储过程实例详解 比如我的本地Oracle数据库有一个package,里面有一个存储过程: create or replace package PKG_TRANS_REL is -- Author : test -- Created : -- Purpose : test -- Public type declarations PKG_NAME varchar2(20) := 'PKG_TRANS_REL'; --存储过程,测试用 procedure pro_GC_wi

  • Oracle存储过程案例详解

    创建简单存储过程(Hello World) 为了方便读者简单易懂,我将下面使用到的表复制给大家. 具体表中的数据,请大家自己填写 -- Create table create table EMP ( empno NUMBER(4) not null, ename VARCHAR2(10), job VARCHAR2(9), mgr NUMBER(4), hiredate DATE, sal NUMBER(7,2), comm NUMBER(7,2), deptno NUMBER(2) ) cre

  • MySQL存储过程及语法详解

    目录 1. 存储过程基本用法 1.1 概念 1.2 创建存储过程 1.2.1 语法格式 2.2.2 语法介绍 1.3 调用存储过程 1.4 查看存储过程 1.5 删除存储过程 2. 存储过程中的语法结构 2.1 变量的声明以及赋值 2.1.1 DECLARE 声明变量 2.1.2 SET 变量赋值 2.1.3 select...into 赋值 2.2 条件判断 2.2.1 if条件判断 2.3 传递参数 2.3.1 IN - 输入参数 2.3.2 out - 输出参数 2.4 case 结构 2

  • MYSQL存储过程 注释详解

    目录 1.使用说明 2.准备 3.语法 3.1 变量及赋值 3.2 入参出参 3.3 流程控制-判断 3.4 流程控制-循环 3.5 流程控制-退出.继续循环 3.6 游标 3.7 存储过程中的handler 4.练习 4.1 利用存储过程更新数据 4.3 其他场景: 5.其他 5.1 characteristic 5.2 死循环处理 5.3 可以在select语句中写case 5.4 临时表 0.环境说明: 软件 版本 mysql 8.0 navicat 1.使用说明 存储过程时数据库的一个重

  • SQL SERVER存储过程用法详解

    目录 一.存储过程的概念 存储过程的优点 二.存储过程的分类 1.系统存储过程 2.临时存储过程 3.用户自定义存储过程 二.存储过程的用法 1.不带参数的存储过程,获取MyStudentInfo表的所有记录 2.创建带输入参数的存储过程 3.创建带默认值的输入参数的存储过程 4.创建带输出参数的存储过程(根据输入的ID返回年级ID) 5.创建带返回值的存储过程 6.创建带变量的存储过程 7.创建带输入输出参数的存储过程 8.创建分页存储过程 分页存储过程2 9.返回多个结果集 10.存储过程中

  • DOS批处理中%~dp0等扩充变量语法详解

    有时候我们看到别人使用%~dp0 ~是扩展的意思,相当于把一个相对路径转换绝对路径 %0代指批处理文件自身 %1表示批处理文件命令行接收到的第一个参数,%2表示第二个,以此类推 %~d0 是指批处理所在的盘符,其中d代表drive %~p0 是指批处理所在的目录,其中p代表path %~dp0 是批处理所在的盘符加路径 cd %~dp0 就是进入批处理所在目录了 详细解释还可参考命令 call /? DOS批处理中%~dp0表示什么意思 (注: %0 就是该 batch 文件的文件名) 这句的意

  • Oracle SCN与检查点详解

    1.SCN 的定义 SCN(System Change Number ),也就是通常所说的系统改变号,是数据库中非常重要的 一个数据结构. SCN 用以标识数据库在某个确切时刻提交的版本.在事务提交时,它被赋予一个惟一的 标识事务的SCN.SCN 同时被作为 Oracle数据库的内部时钟机制,可被看作逻辑时钟,每个 数据库都有一个全局的 SCN 生成器. 作为数据库内部的逻辑时钟,数据库事务依 SCN 而排序,Oracle 也依据 SCN 来实现一致性读 (Read Consistency )等

  • 基于JS脚本语言的基础语法详解

    JS脚本语言的基础语法:输出语法  alert("警告!");  confirm("确定吗?");   prompt("请输入密码");为弱类型语言: 开始时要嵌入JS代码:<script type="text/javascript"></script>: 关于写程序是需注意的基本语法: 1.所有的字符全都是英文半角的: 2.大部分情况下每条语句结束后要加分号: 3.每一块代码结束后加换行:4.程序前呼

随机推荐