当前位置:首页 > PLSQL语言的运用
引用数组元素 例: DECLARE type strings is varray(5) of varchar2(10); -- Declare a varray with four element
v_list strings := strings('scott','peter','smith','tom'); int number; BEGIN
int := 1; dbms_output.put_line(v_list(int)); v_list(int) := 'urman'; dbms_output.put_line(v_list(int)); int := 3;
dbms_output.put_line(v_list(int)); v_list(int) := 'jackson';
dbms_output.put_line(v_list(int)); v_list.extend; v_list(4):='oracle';
dbms_output.put_line(v_list(4)); END;
表和数组属性 属性 exists count limit First&last Next&prior extend trim delete 返回类型 boolean number number Binary_integer Binary_integer N/A N/A N/A 描述 有效范围 指定元素在集合中是否存在 表、可变数组 返回集合中元素的数目 返回集合中最大元素数 表、可变数组 可变数组 返回第一个(最后一个)元素表、可变数组 的索引 返回当前元素的下一个(前一表、可变数组 个)元素的索引 向集合中添加元素 从集合的最后删除元素 从集合中删除指定元素 可变数组 可变数组 表 DECLARE type strings_table is table of varchar2(10) index by binary_integer; strings strings_table; int number; BEGIN
int := 1;
strings(int) := 'element1'; if strings.exists(int) then
dbms_output.put_line(strings(int)); else
dbms_output.put_line('no data!'); return; end if;
strings(2) := 'element2'; strings(3) := 'element3'; strings(4) := 'element4'; strings(5) := 'element5'; strings(6) := 'element6';
dbms_output.put_line(strings.count); dbms_output.put_line(strings.first); dbms_output.put_line(strings.last); dbms_output.put_line(strings.next(2)); dbms_output.put_line(strings.prior(4)); strings.delete(1,3);
--dbms_output.put_line(strings(2)); END;
PL/SQL运算符和表达式 运算符 = <> , != , ~= , ^= < > <= >= 运算符 + - * / := || 运算符 IS NULL BETWEEN AND IN 意义 空值 介于两者之间 在一个值列表之中 意义 加号 减号 乘号 除号 赋值号 连接符 意义 等于 不等于 小于 大于 小于等于 大于等于 AND OR NOT 并 或 否
PL/SQL中的变量赋值
在PL/SQL编程中,变量赋值是一个值得注意的地方,它的语法如下: variable := expression ;
variable 是一个PL/SQL变量, expression 是一个PL/SQL 表达式. BOOLEAN 型变量赋值: 布尔值只有TRUE, FALSE及 NULL 三个值,其中空值在参加算数运算时,结果仍为空值。
PL/SQL中的变量赋值 DECLARE done BOOLEAN; /* the following statements are legal: */ BEGIN
done := FALSE;
WHILE NOT done LOOP Null;
END LOOP; END;
PL/SQL中的变量作用范围及可见性 PL/SQL的变量作用范围特点是:
? 变量的作用范围是在所引用的程序单元(块、子程序、包)内。即从声明变量开始
到该块的结束
? 一个变量(标识)只能在所引用的块内是可见的
? 当一个变量超出了作用范围,PL/SQL引擎就释放用来存放该变量的空间(因为它可
能不用了)
? 在子块中重新定义该变量后,它的作用仅在该块内
PL/SQL中的变量作用范围及可见性 例: DECLARE v_Number NUMBER(3 , 2); BEGIN DECLARE v_Character VARCHAR2(10); BEGIN …… …… END; END;
PL/SQL中的注释
在PL/SQL里,可以使用两种符号来写注释:
? PL/SQL允许用 – 来写注释,它的作用范围是只能在一行有效。
例: V_Sal NUMBER(12,2); -- 工资变量
? 使用 /* */ 来加一行或多行注释。
例:
/***********************************************/ /* 文件名: department_salary.sql */
/***********************************************/
DML语句的返回值
RETURNING 列值1,列值2,…… INTO 变量1,变量2,……
插入语句返回值 DECLARE
v_deptno NUMBER;
v_dname VARCHAR2(100); BEGIN
INSERT INTO departments VALUES
(122, 'HSW', 206, 1500)
RETURNING department_id, department_name INTO v_deptno, v_dname;
dbms_output.put_line(v_deptno); dbms_output.put_line(v_dname); END;
更新语句返回值 DECLARE
v_deptno NUMBER;
v_dname VARCHAR2(100); BEGIN
UPDATE departments SET department_name = 'GE' WHERE department_id = 20
RETURNING department_id, department_name INTO v_deptno, v_dname;
dbms_output.put_line(v_deptno); dbms_output.put_line(v_dname); END;
删除语句返回值 DECLARE
共分享92篇相关文档