oracle的游标 sql语句,sql游标

2022-09-18 13:47:14 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

sql游标

游标的类型:

1、静态游标(不检测数据行的变化)

2、动态游标(反映所有数据行的改变)

3、仅向前游标(不支持滚动)

4、键集游标(能反映修改,但不能准确反映插入、删除)

游标使用顺序:

1、定义游标

2、打开游标

3、使用游标

4、关闭游标

5、释放游标

Transact-SQL:

declare 游标名 cursor [LOCAL | GLOBAL][FORWARD_ONLY | SCROLL][STATIC | KEYSET | DYNAMIC ] [READ_ONLY | SCROLL_LOCKS]

for selet语句 [for update[of 列名[,列名]]

注:LOCAL 局部游标 GLOBAL 全局游标

FORWARD_ONLY 仅向前 SCROLL 滚动

STATIC 静态 KEYSET 键集 DYNAMIC 动态

READ_ONLY 只读 SCROLL_LOCKS 锁定游标当前行

获取游标的数据

FETCH [[NEXT | PRIOR | FIRST | LAST |

ABSOLUTE{ n | @nvar | RELATIVE { n | @nvar}]

from ] 游标名 [into 变量]

注:

NEXT 下一行 PRIOR 上一行 FIRST 第一行

LAST 最后一行 ABSOLUTE n 第n行

RELATIVE n 当前位置开始的第n行

into 变量 把当前行的各字段值赋值给变量

游标状态变量:

@@fetch_status 游标状态

0 成功 -1 失败 -2 丢失

@@cursor_rows 游标中结果集中的行数

n 行数 -1 游标是动态的 0 空集游标

操作游标的当前行:

current of 游标名

以下例子,在SQL SERVER 2000 测试成功

use

pubs

go

declare

@auid

char

(

12

),

@aulname

varchar

(

20

),

@aufname

varchar

(

20

),

@st

char

(

2

),

@auinfo

varchar

(

50

)

declare

auth_cur

cursor

for

select

au_id, au_lname, au_fname, state

from

authors

open

auth_cur

fetc

相关文档:

1.Oracle删除重复记录.

删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录.

delete from people

where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)

and rowid not i ……

Aaron Bertrand

Adam Machanic

All Things SQL Server

Allen Kinsel – SQL DBA

Allen White

Amit Bansal writes…

Andrew Fryer’s Blog

Andrew Kelly

Andy Leonard

Anything and Everything IT

Arcane Code

Arnie Rowland: Ramblings of a Harried Technogeek

B.I. for the SQL Guy

Bart Duncan’s SQL Weblog ……

declare @ID varchar(10)

set @ID=9 –根节点

declare @i int –级数

declare @t table(ID varchar(10),ParentID varchar(10),Level int)

set @i = 1

insert into @t select @ID,0,0 –当前级,本级,如果不要的话可以注释掉或再加个参数来选择操作

insert into @t select ID,ParentID,@i from t_ ……

根據前一篇關於自動備份的文章,對應的自動還原方案

create procedure [dbo].[sp_RestoreDatabase]

@SourceDirBackupFiles NVARCHAR(200)

as

declare @DatabaseName sysname

–Table to hold the result from RESTORE HEADERONLY. Needed to get the database name o ……

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/157848.html原文链接:https://javaforall.cn

0 人点赞