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; 请解释解释。
就这三个问题 请高手 一一给位解释下,我对存储过程还不是多了解 谢谢了 好的话 分通通送了啊
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; 请解释解释。
就这三个问题 请高手 一一给位解释下,我对存储过程还不是多了解 谢谢了 好的话 分通通送了啊
解决方案 »
- SQL语句问题,计算金额匹配百分比。
- truncate table原理
- 如何修改一个JOB的运行时间,并保留其原来的JOBID
- oracle安装问题(redhat5.3 + oracle10g)
- 自动启动数据库
- SELECT TYPE WHERE TYPE的使用
- oralce提高自查询效率,我写的要0.094秒,这个效率不行 请高手指教
- PLSQL Developer 5.1.2.682 汉化版使用oracle时出现的问题???怪,怪,怪
- ORACLE初学者,问题如何建一个自增量字段?
- 如何得到不是数字的数据集
- VC7+OCCI连接ORACLE 成功运行之后文件一直被占用,无法Update
- 求oracle编程面试题
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。