1.PL/SQL块的基本数据类型
RECORD 记录类型 由单行多列的标量构成的复合结构,将一个或多个标量封装成一个对象。 语法:
TYPE record_type IS RECORD (filed1 type1[not null][:=expr1]
[, RECORD(filed1 type1[not null][:=expr1]]
);
示例:
\set SQLTERM /
DECLARE
TYPE my_record_type1 IS RECORD(a1 int default 10,a2 varchar(20) default 'kingbase');
var1 my_record_type1;
BEGIN
DBMS_OUTPUT.PUT_LINE(var1.a1);
DBMS_OUTPUT.PUT_LINE(var1.a2);
var1.a1 :=20;
DBMS_OUTPUT.PUT_LINE(var1.a1);
END;
/
2.PL/SQL基本语句
分为两类:
与数据库有关的非过程化语句 各种SQL语句和游标语句
与数据库无关的过程化语句 赋值语句 条件控制语句 循环控制语句
PL/SQL中如何使用SQL语句
可以使用SELECT语句从数据库检索数据
语法:
SELECT select_list INTO {variable_name[,variable_name]}…|record_name
FROM table WHERE condition;
使用DML语句操纵数据库数据
INSERT DELETE UPDATE
PL/SQL中的事务语句
通过第一个DML语句和随后的COMMIT或ROLLBACK语句开始一个事务
使用COMMIT 或 ROLLBACK 语句显式终止一个事务。
IF选择语句 也被称为条件语句:
IF – THEN – END IF
IF – THEN – ELSE – END IF
IF – THEN – ELSEIF – END IF
简单case 语句
语法:CASE search – expression
WHEN expression THEN statement1
WHEN expression THEN statement2
ELSE statement3
END CASE;
搜索 case语句
语法: CASE
WHEN boolean-expression THEN statement1
WHEN boolean-expression THEN statement2
ELSE statement3
END CASE;
Basic loop语句
While loop 语句
For loop 语句
For ALL语句
EXIT 语句
Conitune 语句 GOTO语句
CURSOR概念
游标是什么 用来存储多条查询语句的一种数据结构(‘结果集’) 它有一个指针,从上往下移动,从而能够遍历每条记录
分为 静态游标(使用前已和SQL语句绑定,分为显式和隐式),动态游标(在声明时没有设定SQL语句,打开时可以进行修改),系统游标(系统预定义的游标sys_refcursor)
显式游标
语法:CURSOR 游标名[游标输入参数,…]
[Return 返回类型] IS 查询语句
使用:
•打开游标 OPEN 游标名 [所有定义的游标输入参数]
•提取游标 FETCH 游标名 INTO 接收变量
•关闭游标 CLOSE 游标名
隐式游标
当在PLSQL中使用数据操纵语言(DML)时, 预先定义一个名为SQL的隐式游标
动态游标
游标在声明时没有设定,在打开时可以对其进行修改