PLSQL基础笔记

来杭州学习半年多了!今天终于讲到以前关注的ORACLE PL/SQL存储过程! 整理一下上课敲的代码:
先了解要用到的知识
1.variable(变量
语法:
var_name var_type[CONSTANT][NOT NULL][:= value];
DECLARE
  v_fname VARCHAR2(50);

为了保障变量与DB中TABLE 的Column数据类型的同一性,要用:
2.%TYPE
语法:
DECLARE
  v_fname s_emp.FIRST_NAME%TYPE;

但如果声明太多的话!可累人了,还好有:
3.RECORD
语法:
TYPE record_name IS RECORD(
   field1 type1 [NOT NULL][:= expression1],
   ...
   fieldN typeN [NOT NULL][:= expressionN]
);
DECLARE
   TYPE s_TT IS RECORD(
       s_id s_emp.ID%TYPE,
       ....
       s_sal s_emp.SALARY%TYPE
   )
   --以上自定义了一个类型,下面用该类型作自定义变量的类型
   s_temp s_TT;

一个表如果有很多字段,那要敲... :(, ORACLE想的也挺多:
4.ROWTYPE
返回一个基于DB中表定义的类型(一行的所有字段)
DECLARE
  v_temp s_emp%ROWTYPE;

5.TABLE
与一个MAP<int,T>集合类似,用来保存可用的数据
语法:
TYPE tabletype IS TABLE OF type INDEX BY BINARY_INTEGER;
DECLARE
    TYPE t_temp IS TABLE OF s_emp%ROWTYPE INDEX BY BINARY INTEGER;
    用t_temp作为类型来声明一个变量
    v_table t_temp;
BEGIN
    SELECT *
    INTO v_table(-2)
    FROM s_emp
    WHERE ID=1;
END;

-2是ID=1的记录保存在v_table中的索引位置,该索引的值不能超过BINARY INTEGER的取值范围:正负2147483647.索引可以是这个范围内的任意值

你可能感兴趣的:(oracle,table,null,Integer,存储)