标签:sql语言 oracle oracle触发器 pl/sql oracle存储过程
一、PL/SQL是什么?
PL/SQL(procedural language/SQL)是oracle在sql上的扩展,pl/sql不仅允许嵌入sql语言,而且可以定义常量和变量,允许使用条件语句和循环语句,允许使用例外处理各种错误,这使得它的功能十分强大。但是移植性不好。
1. 实例1 只包括执行部分的PL/SQL块
set serveroutput on; begin dbms_output.put_line(‘asdasdasdas‘); end; /
set serverout 选项为打开显示。
dbms_output为oracle提供的包
2. 实例2 包含输入的PL/SQL块
declare v_name varchar2(10); v_sal number(7,2); begin select ename,sal into v_name,v_sal from emp where empno=&no; dbms_output.put_line(‘雇员名:‘||v_name); dbms_output.put_line(‘薪水:‘||v_sal); end; /
说明:首先声明了类型为varchar2的v_name变量和number的v_sal,在pl/sql语句块中执行搜索,用empno搜索出emp表的ename和sal字段的值,&no表示要在执行过程中输入empno这个参数。把查询的ename值存入v_name中,sal放入v_sal中,然后再显示出来。
3. 实例3 包含异常处理的PL/SQL块
declare v_name varchar2(10); v_sal number(7,2); begin select ename,sal into v_name,v_sal from emp where empno=&no; dbms_output.put_line(‘雇员名:‘||v_name); dbms_output.put_line(‘薪水:‘||v_sal); exception when no_data_found then dbms_output.put_line(‘输入数据有误!‘); end; /
这个例子前面与实例2完全相同,只是加上了异常处理部分。这是一个完整的PL/SQL块。
二、过程(存储过程)
存储过程用于执行特定的操作。建立过程时,既可以指定输入参数(in),也可以指定输出参数(out)。通过在过程中使用输入参数,可以将数据传递到执行部分;通过使用输出参数,可以将执行部分数据传递到应用环境中。在sqlplus中使用create procedure命令 创建过程。
create procedure procedure_name(name varchar2,sala number) is begin update emp set sal=sala where ename=name; end; /
说明: 创建一个名为procedure_name的过程,它又2个输入参数,varchar2类型的name和number类型的sala,begin与end之间的是plsql块。
本文出自 “飞鱼技术” 博客,请务必保留此出处http://flyingfish.blog.51cto.com/9580339/1583453
Oracle 中的PL/SQL、存储过程、触发器、函数、包(学习笔记)
标签:sql语言 oracle oracle触发器 pl/sql oracle存储过程
原文地址:http://flyingfish.blog.51cto.com/9580339/1583453