zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

oracle 游标(oracle游标查询)

Oracle 查询 游标
2023-09-11 14:19:28 时间

--Oracle使用游标查询结果集所有数据,对于DML语句和单行select into ,oracle自动分配隐形游标。处理select返回多行语句,可以使用显式游标。

DECLARE

myTabelName NVARCHAR2(200):=''; --表名

myTableRowComment NVARCHAR2(200):=''; --行内容

result VARCHAR2(2000):=''; --结果

CURSOR myCursor IS SELECT * FROM 结果集(表名/视图名/查询结果) ORDER BY (结果集中的列名);--定义游标

myRecord myCursor%ROWTYPE; --定义游标记录类型

BEGIN

OPEN myCursor; --打开游标

IF myCursor %ISOPEN THEN --判断打开成功

---------------------游标打开成功 BEGIN

LOOP --循环获取记录集 BEGIN

FETCH myCursor into myRecord;

IF myCursor%FOUND THEN --游标的FOUND属性判断是否有记录

BEGIN

myTabelName:='TEC_PARTTEC';

myTableRowComment:=myRecord.ID||' '||myRecord.CREATEDATE||' '

||myRecord.CREATEUSER||' '||myRecord.ORGANIZATIONID||' '

||myRecord.PARTID||' '||myRecord.PROCESSTYPE||' '

||myRecord.VERSION||' '||myRecord.REMARK||' '

||myRecord.STATE;

result:='表名 '||myTabelName||' 列值 '||myTableRowComment;

result:=myTabelName||' '||myTableRowComment;

DBMS_OUTPUT.PUT_LINE(result);

END;

ELSE

EXIT; --游标中的记录为空 退出

END IF; --结束IF语句

END LOOP; --循环获取记录集 END

ELSE

DBMS_OUTPUT.PUT_LINE('游标没有打开');

END IF;

CLOSE myCursor;

END;