PL/SQL基础

本文详细介绍了PL/SQL的基础知识,包括块的结构(DECLARE、BEGIN、EXCEPTION部分)、匿名块、命名块、子程序(过程、函数和包)以及触发器的创建和使用。此外,还详细阐述了如何定义和使用各种类型的变量,如标量、复合、参照和LOB类型,强调了不同类型的特点和用途。
摘要由CSDN通过智能技术生成

块(Block)是PL/SQL的基本程序单元,编写PL/SQL程序实际就是编写PL/SQL程序。
编写PL/SQL应用模块,块的嵌套层次没有限制。

1.PL/SQL块结构:
DECLARE
/*
*定义部分——定义常量、变量、复杂数据类型、游标、异常
*/
BEGIN
/*
*执行部分——PL/SQL语句和SQL语句
*/
EXCEPTION
/*
*异常执行部分——处理运行错误
*/
END;

DECLARE和EXCEPTION部分是可选的
例:
BEGIN
dbms_output.put_line(‘hello,everyone!’);
END;
/

2.PL/SQL块分类
2.1匿名块(没有名称的PL/SQL块),既可以内嵌到应用程序中,也可以在交互式环境(SQL*Plus)中直接使用。
2.2命名块(具有特定名称标识的PL/SQL块,命名块与匿名块类似,只不过在PL/SQL前使用<<>> 加以标记。)
2.3子程序(包括过程、函数和包)当开发PL/SQL子程序时,既可以开发客户端的子程序,也可以开发服务器端的子程序。客户端子程序主要用在Develop中,而服务器端子程序可以用在任何应用程序中。通过将商业逻辑和企业规则集成到PL/SQL子程序中,可以简化客户端程序的开发和维护。
1)过程
过程用于执行特定操作。当执行过程时,既可以指定输入参数(IN)也可以指定输出参数(OUT)。通过在过程中使用输入参数,可以将应用环境的数据传递到执行部分;通过 使用输出参数,可以将执行部分的数据传递到应用环境。
例:
CREATE PROCEDURE update_sal(NAME VARCHAR2,newsal NUMBER)
IS
BEGIN
UPDATE emp SET sal = newal
WHERE lower(ename) = lower(NAME);
END;
/
2)函数
函数用于返回特定数据。函数头部必须包含RETURN子句,函数体内必须要包含RETURN语句返回数据。
例:
CREATE FUNCTION annual_income(NAME VARCHAR2)
RETURN NUMBER IS
annual_salary NUMBER(7,2);
BEGIN
SELECT sal*12+nvl(comm,0) INTO annual_salary
FROM emp WHERE lower(ename)=lower(NAME);
RETURN annual_salary
END;
/
3)包
包用于逻辑组合相关的过程和函数,它由包规范和包体两部分组成。包规范用于定义公用的常量、变量、过程和函数。
建立包规范:
CREATE PACKAGE

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值