Oracle PLSQL

1、PLSQL的概览

PLSQL 是Oracle公司在SQL基础上进行扩展而成的一种过程语言。PLSQL提供了典型的高级语言特性,包括封装,例如处理机制,信息隐藏,面向对象等;并把最新的编程思想带到了数据库服务器和工具集中。
与Java,C#相比 ,PLSQL的优势是:SQL语言可以直接写到PLSQL的“块”中或者是PLSQL的过程、函数中。没有必要向java那样先创建Statement对象来执行SQL; 这使得PLSQL成为很强大的事务处理语言,即:使用SQL来处理数据,使用控制结构来处理业务逻辑。
image.png
PLSQL在Oracle 数据库服务器(在存储过程、函数、数据库触发器,Package包中使用)和Oracle开发 工具集(在 开发工具组件的触发器中使用);Form Developer,Report Developer 还可以使用共享库 (包含使用PLSQL写的过程和函数,扩展名为PLL的文件); SQL数据类型也可以在PLSQL中使用,结合 SQL提供者的直接访问,这些共享数据类型整合了PLSQL和Oracle的数据库字典。PLSQL消除了存取数据 库的便利性与过程语言之间的障碍。
PLSQL的另一个显著好处在于它可以通过减少来回交互减轻网络流量压力、节省时间。
image.png

2、PLSQL的块概念

  1. DECLARE (Optional)
  2. Variables, cursors, user-defined exceptions
  3. BEGIN (Mandatory)
  4. SQL statements
  5. PL/SQL statements
  6. EXCEPTION (Optional)
  7. Actions to perform when errors occur
  8. END; (Mandatory)

使用分号作为一句SQL 或者PLSQL语句的结束;块结构关键字(DECLARE, BEGIN,EXCEPTION 后面不跟分号;END后面需带分号;可以把一句SQL语句写在一行上,但一般不建议这么做,因为代码不够漂亮

  1. DECLARE
  2. v_variable VARCHAR2(5);
  3. BEGIN
  4. SELECT column_name
  5. INTO v_variable
  6. FROM table_name;
  7. EXCEPTION
  8. WHEN exception_name THEN
  9. ...
  10. END;

3、PLSQL的块包括三种:匿名块、存储过程、函数

A.匿名块

  1. [DECLARE]
  2. BEGIN
  3. --statements
  4. [EXCEPTION]
  5. END;

B.存储过程

  1. PROCEDURE name
  2. IS
  3. BEGIN
  4. --statements
  5. [EXCEPTION]
  6. END;

C.函数

  1. FUNCTION name
  2. RETURN datatype
  3. IS
  4. BEGIN
  5. --statements
  6. RETURN value;
  7. [EXCEPTION]
  8. END;