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.索引可以是这个范围内的任意值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值