学习存储过程
系统存储过程
由系统定义,存放在master数据库中
类似C语言中的系统函数
系统存储过程的名称都以“sp_”开头或”xp_”开头
常用的系统存储过程如下表所示:
系统存储过程
说明
sp_databases
列出服务器上的所有数据库。
sp_helpdb
报告有关指定数据库或所有数据库的信息
sp_renamedb
更改数据库的名称
sp_tables
返回当前环境下可查询的对象的列表
sp_columns
回某个表列的信息
sp_help
查看某个表的所有信息
sp_helpconstraint
查看某个表的约束
sp_helpindex
查看某个表的索引
sp_stored_procedures
列出当前环境中的所有存储过程。
sp_password
添加或修改登录帐户的密码。
sp_helptext
显示默认值、未加密的存储过程、用户定义的存储过程、触发器或视图的实际文本。
存储过程定义
存储过程是一组 Transact-SQL 语句,它们只需编译一次,以后即可多次执行。因为 Transact-SQL 语句不需要重新编译,所以执行存储过程可以提高性能。
触发器是一种特殊的存储过程,不由用户直接调用。创建触发器时,将其定义为在对特定表或列进行特定类型的数据修改时激发。
PL/SQL运行过程:
PL/SQL支持两种执行方式: native execution (本地执行) 和 interpreted execution (解释执行)
解释执行, PL/SQL语句集会被编译成所谓的”字节码(bytecode)”的表示方式, 类似于Java 中的bytecode, 最后会被一个oracle数据库实现的虚拟机组件解释执行
本地执行, 会把PL/SQL直接编译成对应平台的object code(可以被链接成可执行程序), 由于没有解释执行的过程, 所以可以提供更好的性能。