open_cursor表各字段含义,open cursor for

http://www.itjxue.com  2023-01-15 18:37  来源:未知  点击次数: 

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,数字 这两个字段的含义有代表什么呢?

--开始日期,及延续时段(天),同样,这也只是猜测。

另外。。。。。。

(责任编辑:IT教学网)

更多

相关导航代码文章

推荐导航代码文章