在PL/SQL代码块中使用select into 赋值的话,有可能返回的是一个结果集.此时,如果使用基本类型或自定义的记录类型,将会报错. 因此,需要定义一个变量,是某种类型的集合.下面以一个基于表的行类型的集合为例简单介绍一下(相信基本类型同理吧). DECLARE CURSOR cur_tx IS SELECT GKEY from t ; SUBTYPE TX_TYPE IS t%ROWTYPE ; -- 定义类型 TYPE TX_TAB IS TABLE OF TX_TYPE;--定义新类…
一.PL/SQL记录 定义: TYPE <类型名> IS RECORD <列名1 类型1,列名2 类型2,...列名n 类型n,> [NOT NULL] <列的类型>可以为Oracle的数据类行以及用户自定义类型;可以是记录类型的嵌套. 二.PL/SQL表 定义: TYPE <类型名> IS TABLE OF <列的类型> [NOT NULL] INDEX BY BINARY_INTEGER; <列的类型>可以为Oracle的数据类行…
刚打开游标的时候,是位于一个空行,要用fetch into 才能到第一行. 只是要注意用更新游标的时候,不能在游标期间commit. 否则会报ORA-01002: fetch out of sequence 就是COMMIT;导致错误 在打开有for update的cursor时,系统会给取出的数据加上排他锁(exclusive), 这样在这个锁释放前其他用户不能对这些记录作update.delete和加锁. 而我一旦执行了commit,锁就释放了,…