- PL/SQL基本结构
1.DECLARE–【定义区】
定义传入传出的参数,定量,变量,自定义的类型,游标,或自定义的异常绑定
2.BEGIN–执行区
写SQL&P/L sql的语句完成执行过程
3.EXCEPTION–【异常区】
定义异常的捕获、处理、或者抛出
4.END
- SQL和P/L SQL的差别
1.SQL指结构化查询语言
而P/L SQL叫做过程化SQL语言(Procedural Language/SQL)是一种程序化语言
2.关系上,P/L SQL是Oracle数据库对SQL语句的拓展,在普通SQL语句的使用上增加了编程语言的特点。
所以PL/SQL就是把数据操作和查询语句组织在PL/SQL代码的过程性单元中,
通过逻辑判断、循环等操作实现复杂的功能或者计算的程序语言。
3.直观上讲,IF ELSIF ELSE等等控制执行过程的,就是P/L SQL结构;
而SQL就是我们所熟悉的SELECT DELECT UPDATE INSERT等等。
- P/L SQL基础知识
1.变量类型大概分为数字、字符、日期和布尔四大种类型
其中LONG不是长整型数字,而是字符型
2.变量的声明:
变量名 【CONSTANT】 变量类型 【NOT NULL】 【DEFAULT】
若不赋初值则默认为NULL,但若声明NOT NULL则必须赋初值,否则编译不过。
此外可以用DEFAULT设置变量的默认值
3.常量声明:CONSTANT 关键字,声明后必须赋上初值
NVARCHAR类型要写明长度
NUMBER类型的长度和精度可以省略
常量在定义区被设置初值后,不可以在执行区BEGIN内被重新赋值
4.赋值语句用的是 := 而非 =
判断语句用的是**=** 而非**==**
5.SQL DEVELOPER中不可以直接写SELECT语句,编译不过
所有的SELECT必须是SELECT … INTO …
6.函数和存储过程
函数比较熟悉,只能有一个返回值
存储过程与函数功能上比较类似,都是完成相应的操作。
但是存储过程不一定只有一个返回值,可以有多个返回值,即出参(out参数)
例如A过程可以有三个入参两个出参:
A(IN1,IN2,IN3,OUT1,OUT2){
....
OUT1 := balaba ;
OUT2 := balala ;
RETURN;
}
我们在调用存储过程的时候可以直接把声明好的变量放在对应位置接收返回的输出参数值
例如B过程中用变量V1,V2(假设已经定义好与A过程的OUT1和OUT2类型对应相同)来接收
B(INB1,INB2,INB3,INB4,OUTB1,OUTB2){
....
A(INB1,INB2,INB3,V1,V2);
....
}
.
- 编码规范
1.同类型常量定义语句写在一起
2.NO_DATA_FOUND异常
3.缩进
4.注释