open_cursor表各字段含义,open cursor for
oracle中open cursor for 和for cursor in有什么区别
oracle中open cursor for 和for cursor in的区别如下:
open cursor for 是直接打开游标查询结果,适用于单表查询,结果集一般不会太大。
for cursor in是从大量数据中循环获取满足条件的记录,放入游标
1、open cursor for 用法:
CREATE OR REPLACE PROCEDURE AMLS.TEST(C_RES OUT SYS_REFCURSOR) AS
BEGIN
OPEN C_RES FOR //打开游标
SELECT * FROM MAJOR.TB_CUST_CODE;
END TEST;
2、for cursor in用法
V_CURSOR SYS_REFCURSOR;
V1 MAJOR.TB_CUST_CODE%ROWTYPE;
BEGIN
AMLS.TEST(V_CURSOR);
LOOP
FETCH V_CURSOR
INTO V1;
EXIT WHEN V_CURSOR%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(V1.CUST_NAME);
END LOOP;
oracle open cursor for select..是什么意思
打开一个游标
游标的内容为查询的结果集
如:open cursor for select * from table_name;
目的就是遍历table_name这个表的每条数据。
数据库里面游标CURSOR
你的CURSOR是什么数据库的。sqlserver还是oracle?
游标的定义说不好,不过我理解的是,选出一堆数据放到一个游标里
在后续的任务里循环调出每一行数据去匹配并得到所要的结果,oracle的游标例子可以提供,sqlserver提供不了,需要的话说一声,给你发个例子。
游标一般定义于存储过程或者函数中;
--定义游标:
CURSOR cur_cursor_name
IS
SELECT 字段1,字段2(可定义多个字段)
from table_name
WHERE 条件;
--在后续中,要打开游标:
open cur_cursor_name;
loop
fetch cur_cursor_name into v_cursor_name;--把游标取出的数据放到一个变量,v_cursor_name为定义的变量名
EXIT WHEN cur_cursor_name%NOTFOUND;--当取再没有数据可取时退出游标
再然后你就可以根据游标取出的数据进行你需要的操作
在ASP中,rs.open sql,conn,1,3 的含义
RS.OPEN SQL,CONN,A,B
参数A为设定游标的类型,其取值为:
0 仅向前游标,只能向前浏览记录,不支持分页、Recordset、BookMark
1 键集游标,其他用户对记录说做的修改将反映到记录集中,但其他用户增加或删除记录不会反映到记录集中。支持分页、Recordset、BookMark
2 动态游标功能最强,但耗资源也最多。用户对记录说做的修改,增加或删除记录都将反映到记录集中。支持全功能浏览。
3 静态游标,只是数据的一个快照,用户对记录说做的修改,增加或删除记录都不会反映到记录集中。支持向前或向后移动
参数B为记录集的锁定类型,其取值为:
1 锁定类型,默认的,只读,不能作任何修改
2 当编辑时立即锁定记录,最安全的方式
3 只有在调用Update方法时才锁定记录集,而在此前的其他操作仍可对当前记录进行更改、插入和删除等
4 当编辑时记录不会被锁定,而更改、插入和删除是在批处理方式下完成的
打开数据记录集方法其实不止一种,但是我们用的最多的就是
rs.open sql,1,1的方法,可是后面的数字参数很多人不解其意,下面我们来介绍一下。
其实open方法后面有多个参数
CursorType LockType CommandType
比如 rs.open sql,1,1
也可以写成
rs.cursorType = 1
rs.LockType = 1
rs.open sql
其中CursorType代表从一个表或者一个SQL查询结果返回的记录。
这个参数有四个值分别是:
adOpenForwardOnly 表示只允许在记录集内的记录间往前移动。这个是缺省值。
adOpenKeyset 反映由其它用户所做的对记录的改变或者删除动作,但并不反映由其它用户做作的添加新记录的动作。
adOpenDynamic 反映由其它用户所做的对记录的改变或者删除动作,包括添加的新记录
adOpenStatic 不反映其它用户对记录所做的修改,添加,删除动作。
这四个值VBSCRIPT预定义位
adOpenForwardOnly = 0
adOpenKeyset = 1
adOpenDynamic = 2
adOpenStatic = 3
lockType 表示当打开记录集时,数据提供者用于锁定数据库的类型:
adLockReadOnly 数据不能改变,这是缺省值!
adLockPessimistic 数据提供者在开始编辑数据的时候锁定记录
adLockOptimistic 仅当调用update方法时,数据提供者锁定记录
adLockBatchOptimistic 用于批处理修改
他们的常量值定义分别是:
adLockReadOnly = 1
adLockPessimistic = 2
adLockOptimistic = 3
adLockBatchOptimistic = 4
oracle 数据库 cursor 游标变量 column 列 名称 ...
看一下下面的例子就会明白了(显示所有雇员的名字)。
DECLARE
TYPE emp_cursor_type IS REF CURSOR;
c1 EMP_CURSOR_TYPE;
v_emp_record emp%ROWTYPE;
BEGIN
OPEN c1 FOR SELECT * FROM emp;
LOOP
FETCH c1 INTO v_emp_record;
EXIT WHEN c1%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(v_emp_record.ename);
END LOOP;
CLOSE c1;
END;
有谁帮我解释一下该表中各字段的含义?谢谢高手指点!
(1)表policies(策略)有以下字段:
policy_id,策略ID,数字
ON DELETE CASCADE
指定如果试图删除某行,而该行含有由其它表的现有行中的外键所引用的键,则也将删除所有包含那些外键的行。如果在目标表上也定义了级联引用操作,则对从那些表中删除的行同样采取指定的级联操作。
vin,供应商,变长字符串,40字节
coverage_begin,日期
coverage_term,数字
make,变长字符串,30字节
model,变长字符串,30字节
year,数字
(2)表automobiles(汽车)有以下字段:(猜的)
make制造厂家,变长字符串,30字节
model型号,变长字符串,30字节
year年代,整数
(3)表insured_autos 有以下字段:
policy_id,策略ID,数字
三个表的关系如下:
automobiles为静态基表,
policies表引用automobiles,关联字段为(make,model,year)
insured_autos关联policies,通过policy_id
好像是作汽车保险的程序。
本语句是SQL SERVER 2000的。
补充:
vin是哪个单词的缩写啊?肯定表示供应商么?
--不一定。猜的。要说由表定义完全猜到设计者的意图,那是不可能的。举例来说:name(姓名)字段你也可以放一个家具的名字啊。
coverage_begin,日期 coverage_term,数字 这两个字段的含义有代表什么呢?
--开始日期,及延续时段(天),同样,这也只是猜测。
另外。。。。。。