PL/SQL
- 过程语言(Procedural Language)与结构化查询语言(SQL)结合而成的编程语言
- 标准sql的一种扩展, 不同的数据的扩展不同
sql server: t-sql
oracle : pl/sql
支持多种数据类型,
- 如大对象和集合类型,
- 可使用条件和循环等控制结构
作用:
- 可用于创建存储过程, 函数、触发器和程序包,
- 给SQL语句的执行添加程序逻辑
PL/sql中能使用如下:
- 数据 *** 纵命令 DML insert delete update select
- 事务控制命令 TCL commitrollback savepoint
- 游标控制: 循环数据集
- SQL 函数和 SQL 运算符
而不能用:
- DDL(create, drop, alter)
- DCL( grant, revoke)
优点:
- PL/sql指令是预先编译好放在服务器中运行中,效率高 ( 银行, 电信)
- 调用简单
- 面向对象
缺点:
- 无法移植
语法组成
三部分: 声明 执行块(必须) 异常
[DECLARE 局部变量定义] 声明变量定义 BEGIN 执行的语句; [EXCEPTION 异常处理代码] END;
案例一
输出hello world
类似 Java控制台打印语句
System.out.println("hello world");
打开SQL窗口
无法独立运用打印函数 否则:ORA-00900
-- 无法独立运用
dbms_output.put_line('hello world111');
需要借助语句块才能使用
-- 最简形式 只有begin .... end
begin
dbms_output.put_line('hello world');
end;
此时界面仅显示代码执行时间和成功与否
其实输出结果在OutPut窗口
注意:
在SQLPlus中运行PL/SQL块前,如果要将执行结果输出,
需要先执行 set serveroutput on 命令,
set serveroutput on;
在窗口里显示服务器输出信息。
再用dbms_output.put_line()语句输出变量值。
begin
dbms_output.put_line('hello world');
end;
演示效果如图:
注意:
- 语句块需要换行并 / 符号结束
- 第一次执行语句块 没有输出内容
- 执行 set serveroutput on;后 再次执行
- 会显示 Hello World
PS:
Oracle安装路径下的glogin.sql文件可以配置
在cmd 窗口 就可以不用每次执行 set serveroutput on
但是一般都利用数据库管理工具进行 *** 作 可无视
D:\softwares\oracle\product\10.2.0\db_1\sqlplus\admin
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)