Oracle存储过程基础,以及连接IDEA使用(附ojdbc免费下载地址)

基于oracle数据库存储过程的创建及调用

教学大纲:

  1. PLSQL编程: Hello World、程序结构、变量、流程控制、游标
  2. 存储过程: 概念、无参存储、有参存储(输入、输出)
  3. JAVA调用存储过程

1、PLSQL编程

1.1、概念和目的

什么是PL/SQL

  1. PL/SQL(Procedure Language/SQL)
  2. PLSQL是Oracle对sql语言的过程化扩展(类似于Basic)
  3. 指在SQL命令语言中增加了过程处理语句(如分支、循环等),使SQL语言具有过程处理能力

1.2、程序结构

通过Plsql Developer工具的Test Window创建 程序模板或者通过语句在SQL Window编写

提示:PLSQL语言是不区分大小写的

PL/SQL可以分为三个部分: 声明部分、可执行部分、异常处理部分

-- Created on 2020/11/23 by HASSD 
declare 
  -- 声明游标、变量
  i integer;
begin
  -- 执行语句
  
  -- [异常处理]
  
end;

其中 declare部分用来声明变量或游标(结果集类型变量),如果程序中无变量声明则可以省略

1.3、Hello World

begin

  -- 打印Hello World
  
  dbms_output.put_line('Hello World');
  
end;

其中 dbms_output为oracle内置程序包,相当于Java中的Syste.out,而put_line()是调用其中的方法,相当于println().

1.4、变量

PLSQL编程中常见的变量分两大类:

  1. 普通数据类型(char,varchar2,date,number,boolean,long)
  2. 特殊变量类型(引用型变量,记录型变量)

变量的声明方式为:

 -- 变量名 变量类型(变量长度) 
 v_name varchar2(20);
1.4.1、普通变量

为了验证本节,我们需要提前创建一个表

create table EMP
(
  empno NUMBER not null,
  ename VARCHAR2(20),
  sal   NUMBER
)

并在其中至少存入一条数据(我在里面存了一条empno为7839的数据,其它值可以自己编写,自己填入其它数据也可以,只需要在后续验证过程中修改对应数值即可)

变量赋值的方式有两种:

  1. 直接赋值语句: =
  2. 语句赋值: 使用select…into…赋值 (select 值 into 变量)
-- 打印人员个人信息,包括姓名,薪水,地址
declare 
   -- 姓名
   v_name varchar2(20) := '小杨'; -- 声明变量时直接赋值
   -- 薪水
   v_sal number;
   --地址
   v_addr varchar2(200);

begin
   -- 在程序中直接赋值
   v_sal :=0;
   
   -- 语句赋值
   select '湖南工业大学' into v_addr from dual;
   
   -- 打印输出 拼接(使用"||"拼接,效果与java语句中使用"+"拼接相同)
   dbms_output.put_line('姓名:'||v_name||',薪水:' ||v_sal ||',地址:'|| v_addr );
  
end;
1.4.2、引用型变量

变量的类型和长度取决于表中字段的类型和长度

通过表名.列名%type指定变量的类型和长度,例如:v_name emp.ename%TYPE;

示例:查询emp表中7839号员工的个人信息,打印姓名和薪水

对比:

这是我们使用普通变量:

-- Created on 2020/11/23 by HASSD 
-- 查询emp表中7839号员工的个人信息,打印姓名和薪水
declare
   --姓名
   v_name varchar2(20);
   --薪水
   v_sal number;   
begin  
   select ename,sal into v_name,v_sal from emp where empno=7839;      
   --打印输出
   dbms_output.put_line('姓名:'||v_name||',薪水:'||v_sal);     
end;

使用引用型变量:

-- Created on 2020/11/23 by HASSD 
-- 查询emp表中7839号员工的个人信息,打印姓名和薪水
declare
   --姓名
   v_name emp.ename%type
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值