PL/SQL 1
程序员文章站
2022-07-09 09:01:30
...
PL/SQL也是一种程序语言,叫做过程化SQL语言(Procedural Language/SQL)。
PL/SQL是Oracle数据库对SQL语句的扩展。在普通SQL语句的使用上增加了编程语言的特点,所以PL/SQL就是把数据操作和查询语句组织在PL/SQL代码的过程性单元中,通过逻辑判断、循环等操作实现复杂的功能或者计算的程序语言。
匿名块——没有名字的程序
主要分四块:
1.declare:用于声明变量,建议用“v_xxx 类型;”
2.begin
3.exception
4.end
小例子1
其中,想要打印出“helloworld”,需要将内部的环境变量“serveroutput”设置成为“on”
小例子2
其中,v_name := 'myname';为赋值语句。
小例子3
其中,
1.若不写exception块,遇到错误时就会系统报错,若完成了exception块,则类似于“try{}catch(){}”的处理;
2.“when others then...”相当于出现任何错误都将执行打印'error!'的语句。
声明变量一般用于保存某表中的某个字段的值
--变量声明的规则
1.变量名不能够使用保留字,from、select等
2.第一个字符必须是字母,所以建议“v_xxx”形式
3.最多包含30个字符
4.不要与数据库的表或列同名
5.每行只能声明一个变量
--常用变量类型
1.binary_integer 整数(主要用来计数或数组下标,效率高,不是用来表示字段类型)
2.number 数字类型
3.char 定长字符串
4.varchar2 变长字符串
5.date 日期
6.long 长字符串,做多2GB
7.boolean 布尔类型,可以取true、false、null值(建议声明时给初值)
小例子4
其中,
1.sysdate是系统当前日期;
2.constant关键字类似JAVA中的final,表示为常量;
3.还可以对变量做设置,如“not null”
4.“||”表示字符串连接符,类似JAVA中的“+”;
5.oracle中不可以打印boolean型的值,会报错,一般用于if语句。
小例子5
--变量声明,使用xx%type属性:用于保证当前变量属性与xx的属性一致
其中,
1.“v_empno2”的属性就与“emp表”的“empno字段”的属性一致;
2.“v_empno3”的属性就与“v_empno2”的属性一致。
PL/SQL是Oracle数据库对SQL语句的扩展。在普通SQL语句的使用上增加了编程语言的特点,所以PL/SQL就是把数据操作和查询语句组织在PL/SQL代码的过程性单元中,通过逻辑判断、循环等操作实现复杂的功能或者计算的程序语言。
匿名块——没有名字的程序
主要分四块:
1.declare:用于声明变量,建议用“v_xxx 类型;”
2.begin
3.exception
4.end
小例子1
其中,想要打印出“helloworld”,需要将内部的环境变量“serveroutput”设置成为“on”
小例子2
其中,v_name := 'myname';为赋值语句。
小例子3
其中,
1.若不写exception块,遇到错误时就会系统报错,若完成了exception块,则类似于“try{}catch(){}”的处理;
2.“when others then...”相当于出现任何错误都将执行打印'error!'的语句。
声明变量一般用于保存某表中的某个字段的值
--变量声明的规则
1.变量名不能够使用保留字,from、select等
2.第一个字符必须是字母,所以建议“v_xxx”形式
3.最多包含30个字符
4.不要与数据库的表或列同名
5.每行只能声明一个变量
--常用变量类型
1.binary_integer 整数(主要用来计数或数组下标,效率高,不是用来表示字段类型)
2.number 数字类型
3.char 定长字符串
4.varchar2 变长字符串
5.date 日期
6.long 长字符串,做多2GB
7.boolean 布尔类型,可以取true、false、null值(建议声明时给初值)
小例子4
其中,
1.sysdate是系统当前日期;
2.constant关键字类似JAVA中的final,表示为常量;
3.还可以对变量做设置,如“not null”
4.“||”表示字符串连接符,类似JAVA中的“+”;
5.oracle中不可以打印boolean型的值,会报错,一般用于if语句。
小例子5
--变量声明,使用xx%type属性:用于保证当前变量属性与xx的属性一致
其中,
1.“v_empno2”的属性就与“emp表”的“empno字段”的属性一致;
2.“v_empno3”的属性就与“v_empno2”的属性一致。