PL/pgSQL
概念
PL/pgSQL是一种程序语言,叫作过程化SQL语言。
PL/pgSQL是结合了结构化查询与数据库自身过程控制为一体的强大语言,不但支持更多的数据类型,拥有自身的变量声明、赋值语句,而且还有条件、循环等流程控制语句。过程控制结构与SQL数据处理能力无缝的结合形成了强大的编程语言,可以创建过程和函数以及程序包。
本章介绍的PL/pgSQL程序包括:
优势
支持SQL
SQL是访问数据库的标准语言,通过SQL命令,用户可以操纵数据库中的数据。PL/pgSQL支持所有的SQL数据操纵命令、游标控制命令、事务控制命令、SQL函数、运算符和伪列。同时PL/pgSQL和SQL语言紧密集成,PL/pgSQL支持所有的SQL数据类型和NULL值。
支持面向对象编程
PL/pgSQL支持面向对象的编程,在PL/pgSQL中可以创建类型,可以对类型进行继承,可以在子程序中重载方法等。
更好的性能
SQL是非过程语言,只能一条一条执行,而PL/pgSQL把一个PL/pgSQL块统一进行编译后执行,同时还可以把编译好的PL/pgSQL块存储起来,以备重用,减少了应用程序和服务器之间的通信时间,PL/pgSQL是快速而高效的。
可移植性
使用PL/pgSQL编写的应用程序,可以移植到任何操作系统平台上的Oracle服务器,同时还可以编写可移植程序库,在不同环境中重用。
安全性
可以通过存储过程对客户机和服务器之间的应用程序逻辑进行分隔,这样可以限制对Oracle数据库的访问,数据库还可以授权和撤销其他用户访问的能力。
PL/pgSQL块
PL/pgSQL是一种块结构的语言,一个PL/pgSQL程序包含了一个或者多个逻辑块,逻辑块中可以声明变量,变量在使用之前必须先声明。除了正常的执行程序外,PL/pgSQL还提供了专门的异常处理部分进行异常处理。