1: TYPE t_transDetailCur IS TABLE OF inv_trans_detail%ROWTYPE;  中 is table of 什么意思  还有什么写法啊?Type怎么写在前面了,不是  ....%type 吗?
  2:    TYPE t_transDetailCur IS TABLE OF inv_trans_detail%ROWTYPE;
  tc_transDetailCur  t_transDetailCur := t_transDetailCur(); 中  我看到下面存储过程中有tc_transDetailCur.DELETE;  还有  tc_transDetailCur.EXTEND;  tc_transDetailCur(tc_transDetailCur.LAST) := vtransdetail;  vIndex     := tc_transDetailCur.FIRST;--循环   这些是什么意思啊?3  : 建立多个游标   TYPE vcursortype IS REF CURSOR;
  citem vcursortype;
  ctemp vcursortype;
  cfield vcursortype;  这样写 的话 打开游标的时候是不是  OPEN CITEM FOR  是不是用for关键字啊  例如 OPEN citem FOR SELECT DISTINCT itemcode FROM inv_trans_detail WHERE enterprisecode=ienterprisecode AND billno=ibillno AND autoseqno IS NOT NULL;   请解释解释。  
就这三个问题  请高手 一一给位解释下,我对存储过程还不是多了解 谢谢了   好的话 分通通送了啊 

解决方案 »

  1.   

    这20分可难赚啊~~~~1: TYPE t_transDetailCur IS TABLE OF inv_trans_detail%ROWTYPE;  中 is table of 什么意思  还有什么写法啊?Type怎么写在前面了,不是  ....%type 吗?
      TYPE 表示是一个oracle的自定义类型,跟%TYPE的type有区别,%TYPE用在列名后,表示该变量采用该列的数据类型。
      is table of,表示这是一个不定长的oracle数组(index by 表),数组的每个元素呢是inv_trans_detail的一行数据。
      2:    TYPE t_transDetailCur IS TABLE OF inv_trans_detail%ROWTYPE;
      tc_transDetailCur  t_transDetailCur := t_transDetailCur(); 中  我看到下面存储过程中有tc_transDetailCur.DELETE;  还有  tc_transDetailCur.EXTEND;  tc_transDetailCur(tc_transDetailCur.LAST) := vtransdetail;  vIndex    := tc_transDetailCur.FIRST;--循环  这些是什么意思啊?  tc_transDetailCur  t_transDetailCur := t_transDetailCur(); 定义一个变量,其类型为t_transDetailCur(上面的自定义类型),并把一个空的类型赋值给它,即初始化。
      tc_transDetailCur.DELETE; 不带参数的DELETE删除数组表中的所有元素。带参数的删除指定元素。
      tc_transDetailCur.EXTEND; 扩充数组容量+1,就是比如数组原来长度为10,extend之后就变为11。
      tc_transDetailCur(tc_transDetailCur.LAST) := vtransdetail; 把数组的最后一个值赋值成vtransdetail。相当于java中 a[a.length-1] = "bbb";只不过这里的每个元素是一个ROWTYPE.
      vIndex    := tc_transDetailCur.FIRST; 把循环的下标取得数组的第一位;3  : 建立多个游标  TYPE vcursortype IS REF CURSOR;
      citem vcursortype;
      ctemp vcursortype;
      cfield vcursortype;  这样写 的话 打开游标的时候是不是  OPEN CITEM FOR  是不是用for关键字啊  例如 OPEN citem FOR SELECT DISTINCT itemcode FROM inv_trans_detail WHERE enterprisecode=ienterprisecode AND billno=ibillno AND autoseqno IS NOT NULL;  请解释解释。  是的,在定义游标的时候没有指定select,下面就要用open ××× for select×××,也可以这样:
      
      vcursortype citem is SELECT DISTINCT itemcode FROM inv_trans_detail WHERE enterprisecode=ienterprisecode AND billno=ibillno AND autoseqno IS NOT NULL;  下面 直接 open citem。
      

  2.   

    这是pl/sql的基础,建议看看书吧!这写东西就像咱们用的数组似的,相信数组你应该不会陌生吧@