PL/SQL基础

一、PL/SQL块结构

PL/SQL块三部分:定义部分、执行部分、例外处理部分,其中执行部分是必须的,其他部分可选

declare
/*
* 定义部分——定义常量、变量、复杂数据类型、游标、例解
*/
begin
  /*
  * 执行部分PL/SQL语句和SQL语句
  */
exception
  /*
  * 例外处理部分——处理运行错误
  */
end; --块结束标记

二、PL/SQL块分类

PL/SQL块分类分为四部分:匿名块、命名块、子程序和触发器


2.3 子程序

      子程序包括过程、函数和包

(1)过程

过程用于执行特定操作,既可以指定输入参数(IN),也可以指定输出参数(OUT)

——输出小写名字        

create or replace procedure getlowusername(username varchar2)
is
begin
  dbms_output.put_line(lower(username));
end;
        (2)函数

函数用于返回特定数据,函数头必须包含return子句,而在函数体内必须包含return语句返回数据。

——传入两个ingter类型参数,返回和

create function GetAddNumber(a integer,b integer)
return integer is
  addnmber integer;
begin
  addnmber:=a+b;
  return addnmber;
end;
(3)包

包用于逻辑组合相关的过程和函数,它由包规范和包体两部分组成

包规范用于定义公用的常量、变量、过程和函数

——定义包规范

create package emp_pkg is 
 procedure update_sal(name varchar2,newsal number);
 function addnumber(name varchar2) return number;
end;
——定义包体

create package body emp_pkg is 
 procedure update_sal(name varchar2,newsal number)
is 
begin
....具体实现
end;
 function addnumber(name varchar2) return number
is 
begin
....具体实现
end;
end;

——调用

必须带包名作为前缀

call emp_pkg.addnumber('aa');


2.4、触发器

常用触发事件包括INSERT、UPDATE、DELETE

create trigger update cascade
 after update of deptno on dept
 for each row 
 begin
  update emp set deptno=:new.deptno where deptno=:old.deptno;    
 end
当更新dept表的deptno列数据时就会级联更新emp表的deptno列的相关数据。


二、定义并使用变量



3.2 复合变量

复合变量是指存放多个值的变量。当定义复合变量时,必须要使用PL/SQL的复合数据类型

(1)记录

类似高级语言中的结构,一般包含多少成员

DECLARE
type emp_record_type  is record(
     edno DEPDEMO.DNO%type,
     edname DEPDEMO.DNAME%type,
     edpno DEPDEMO.DPNO%type
);
emp_r emp_record_type;
begin
      select * into emp_r from DEPDEMO d  where d.dno=0;
      dbms_output.put_line(emp_r.edname);
end;

(2)PL/SQL表

   PL/SQL表类似于高级语言中的数组。但是下标可以为负值没有上下限、且元素个数没有限制。

declare 
  type ename_table_type is table of emp.ename%type
    index by binary_integer;
   ename_table ename_table_type;
begin
  select ename into ename_table(-1) from emp where empno=7788;
  dbms_output.put_line('雇员名:'||ename_table(-1));
end;

(3)嵌套表

(4)变长数组(varray)


3.3 参照变量

参照变量是指用于存放数值指针的变量

(1)REF CURSOR

当使用显式游标时,需要定义显式游标时指定相应的select语句,这种显式游标称为静态游标。

declare
 type c1 is ref cursor;
 emp_cursor c1;
 v_ename emp.ename%type;
 v_sal emp.sal%type;
begin
  open emp_cursor for 
       select ename,sal from emp where deptno=10;
   loop
     fetch emp_cursor into v_ename,v_sal;
     exit when emp_cursor%notfound;
     dbms_output.put_line(v_ename);
   end loop;
   close emp_cursor;
end;

(2)REF obj_type

REF 实际上是指向对象实例的指针。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值