Oracle PL/SQL块结构和组成元素学习笔记(一)
一,PL/SQL块的结构和组成元素
PL/SQL程序由声明部分,执行部分,异常处理部分三个部分组成。结构如下:
DECLARE
/*声明部分:在此声明PL/SQL变量,类型及游标,以及局部的存储过程和函数*/
BEGIN
/*执行部分:过程及sql语句,程序主要部分,是必须的*/
EXCEPTION
/*异常处理部分:错误处理*/
END
PL/SQL块分为三类:
1, 无名块:动态构造,只能执行一次。
2, 子程序:存储在数据库中的存储过程、函数及包等,在数据库上建立好以后可以在其他程序中调用它们。
3, 触发器:数据库发生操作时,触发事件,从而自动执行相应的程序。
PL/SQL标识符:
PL/SQL程序设计中的标识符定义与SQL的标识符定义的要求相同,要求如下:
1, 标识符名不能超过30个字符。
2, 第一个字符必须为字母。
3, 不分大小写。
4, 不能用减号(-)。
5, 不能是SQL保留字。
6, 不要把变量名与表字段中的名一样,可能得到不正确的结果。
变量命名规则如下:
标识符(变量)
命名规则
示例
程序变量
V_name
V_username
程序产量
C_name
C_username
游标变量
Name_cursor
Emp_cursor
异常标识
E_name
E_null_exception
表类型
Name_table_type
Emp_userInfo_type
表
Name_table
userInfo
记录类型
Name_record
Emp_record
SQL*Plus替代变量
P_name
P_sal
绑定变量
G_name
G_sal
变量类型如下:
类型
子类
说明
范围
Oracle限制
CHAR
Character
String
Rowid
Nchar
定义字符串
民族语言字符集
0~32767,可选缺省=1
2000
VARCHAR2
Varchar,String,
NVARCHAR2
可变字符串
民族语言字符集
0~32767
4000
4000
BINARY_INTEGER
带符号整数,为整数计算优化性能
NUMBER(p,s)
Dec
Double
Precision
Integer
Int
Numeric
Real
Small int
小数,NUMBER的子类型
高精度实数
整数,NUMBER的子类型
整数,NUMBER的子类型
整数,NUMBER的子类型
与NUMBER等价
与NUMBER等价
整数,比integer小
LONG
变长字符串
0~2147483647
32767字节
DATE
日期型
公元前4712年1月1日至公元后4712年12月31日
BOOLEAN
布尔型
TRUE,FALSE,NULL
不使用
ROWID
存放数据库行号
UROWID
通用行标识符,字符类型
 
相关文档:
您如果熟悉Oracle数据库,我想您对Thomas Kyte的大名一定不会陌生。Tomas主持的asktom.oracle.com网站享誉Oracle界数十年,绝非幸致。最近在图书馆借到这位Oracle绝顶高手编著的《Expert Oracle Database Architecture-9i and 10g programming Techniques and Solutions》,翻阅之下,果然盛名无虚,虽然说不上字字珠玑,但 ......
1. use database as archive log mode and set archive dest location
alter system set LOG_ARCHIVE_DEST_1 = 'LOCATION=/u04/arch/orcl' scope=spfile;
2. configuration retention days/size/distination
ALTER SYSTEM SET DB_FLASHBACK_RETENTION_TARGET=43200; --30 days
ALTER SYSTEM SET db_recovery_file_dest_ ......
1. 死锁原理
根据操作系统中的定义:死锁是指在一组进程中的各个进程均占有不会释放的资源,但因互相申请被其他进程所站用不会释放的资源而处于的一种永久等待状态。
死锁的四个必要条件:
互斥条件(Mutual exclusion):资源不能被共享,只能由一个进程使用。
请求与保持条件(Ho ......
卸载SQL Server 2005的方法之一,放在这儿只是为了记住:
1:把SQL Server2005的安装盘(安装文件)放入到光驱。
2:打开如下路径:开始/运行,输入:cmd
3:输入下列命令:
Start /wait \setup.exe /qb REMOVE=ALL INSTANCENAME=:管区盘符,例如:G:、H:等;:安装的SQLServer实例名称,默认值为:功能 ......