用法限制

本文介绍游标变量的用法限制。不能使用比较运算符来测试游标变量的相等性、不等性、null或非null。...例如,如果一个存储过程对声明为存储过程形参的游标变量执行所有这三项操作OPEN FOR、FETCH和CLOSE,则必须使用IN OUT模式声明该参数。

REF CURSOR 概述

游标变量是一个实际包含指向查询结果集的指针的...类型可以作为参数传递到存储过程和函数或从存储过程和函数传递。函数的返回类型也可以是 REF CURSOR 类型。这提供了通过在程序之间传递游标变量,来将游标上的操作模块化为单独程序的能力。

概述

程序逻辑,该逻辑从结果集中检索一行,对该行中的数据进行一些处理,然后检索下一行并重复该存储过程游标最常用在 FOR 或 WHILE 循环的上下文中。SPL 逻辑中应包含一个条件测试,用于检测何时到达结果集的末尾,以便程序可以退出循环。

阿里云高校特惠,助力学生创业梦!0元体验,快速入门云计算!

建个炫酷的简历网页,制作一个浪漫的表白网页,打造个人专属网盘,多种动手场景应用免费学!!!
广告

游标属性

每个游标都有%ISOPEN、%FOUND、%NOTFOUND 和%ROWCOUNT四个属性,用于测试游标的状态。本文为您介绍这些属性及示例。ISOPEN%ISOPEN属性用于测试游标是否已打开。cursor_name%ISOPENcursor_name是游标的名称,如果游标打开,将返回BOOLEAN...

声明游标变量

SPL 支持使用 SYS_REFCURSOR 内置数据类型以及通过创建一种 REF CURSOR,然后声明该类型的变量,来声明游标变量。SYS_REFCURSOR是一种 REF CURSOR 类型,允许任何结果集与之关联。这被称为弱类型 REF CURSOR。SYS_REFCURSOR 和用户定义的 ...

将%ROWTYPE 与游标结合使用

使用%ROWTYPE 属性,可以定义一条记录,该记录包含与从游标游标变量获取的所有列相对应的字段。每个字段都采用其对应列的数据类型。ROWTYPE 属性以游标名称或游标变量名称为前缀。record cursor%ROWTYPE;record 是分配给记录的标识符。...

游标 FOR 循环

在目前为止提供的游标示例中,处理游标结果集所需的编程逻辑包括一个用于打开游标的语句、一个用于检索结果集的每一行的循环结构、一个用于结果集末尾的测试和一个用于关闭游标的语句。游标FOR 循环是一个循环结构,使用户无需单独编写刚刚...

关闭游标

游标结果集中检索到所有需要的行后,必须关闭游标。关闭后,将无法再访问结果集。...调用此存储过程时会生成以下输出。员工编号 7369,SMITH 是结果集的第一行。EXEC cursor_example;Employee Number:7369Employee Name:SMITH

声明游标

使用游标,必须先在 SPL 程序的声明部分中声明它。游标声明如下所示:CURSOR name IS query;name 是一个标识符,将用于在程序的后面引用游标及其结果集。query 是一个 SQL SELECT 命令,该命令确定可由游标检索的结果集。下面是游标声明...

游标变量获取行

打开游标变量后,可以使用 FETCH 语句从结果集中检索行。在下面的示例中,已将 FETCH 语句添加到上一个示例中,因此现在结果集将返回到两个变量中,然后显示。请注意,用于确定静态游标游标状态的游标属性也可以与游标变量结合使用。...

打开游标

使用游标检索行之前,必须先将其打开。这将使用 OPEN 语句完成。OPEN name;name 是先前已在 SPL 程序的声明部分中声明的游标的标识符。OPEN 语句不得对已打开且仍处于打开状态的游标执行。下面显示了 OPEN 语句及其相应的游标声明。...

示例

存储过程获取并显示由员工编号和姓名组成的游标变量结果集。CREATE OR REPLACE PROCEDURE fetch_emp(p_emp_refcurIN OUT SYS_REFCURSOR)ISv_empno emp.empno%TYPE;v_ename emp.ename%TYPE;BEGINDBMS_OUTPUT.PUT_LINE('EMPNOENAME');DBMS_...

DBMS_SQL

包DBMS_SQL对PolarDB-O的动态SQL查询功能提供包DBMS_SQL,可以在应用的运行时间构建查询和其它的命令(而不是在编写程序的时候完成这项工作)。PolarDB-O提供对动态SQL的特有支持。包DBMS_SQL以一种与Oracle兼容的方式来使用动态SQL,...

打开一个游标变量

声明游标变量后,必须使用关联的SELECT命令打开它。OPEN FOR语句指定用于创建结果集的SELECT命令。OPEN name FOR query;name是先前声明的游标变量的标识符。query是一个SELECT命令,用于在执行语句时确定结果集。执行OPEN FOR语句后的游标...

关闭游标变量

与静态游标不同,游标变量不必在再次重新打开之前关闭。之前打开的结果集将丢失。通过添加CLOSE语句完善该示例。CREATE OR REPLACE PROCEDURE emp_by_dept (p_deptnoemp.deptno%TYPE)ISemp_refcurSYS_REFCURSOR;v_empno emp.empno%TYPE;v_...

参数化游标

您还可以声明接受参数的静态游标,并在打开该游标时传递这些参数的值。在下面的示例中,我们创建了一个参数化游标,该游标将显示emp表中其薪水低于作为参数传递的指定值的所有员工的姓名和薪水。DECLAREmy_record emp%ROWTYPE;CURSOR c1...

概述

包是命名的函数、过程、变量、游标、用户定义的记录类型以及使用通用限定符(即包标识符)引用记录的集合。包有以下特点: 包提供了一种便捷方式来组织实现相关目的的函数和存储过程使用包函数和存储过程的权限依赖于授予整个包的一个...

游标提取行

在打开游标后,可通过使用 FETCH 语句从该游标的结果集检索行。FETCH name INTO { record|variable[, variable_2].};name 是先前打开的游标的标识符。record 是先前定义的记录(例如,使用 table%ROWTYPE)的标识符。variable,variable_2....

创建子存储过程

声明部分中指定的PROCEDURE子句用于定义和命名该块本地的子存储过程。术语块指 SPL 块结构,该结构由可选的声明部分、必需的可执行部分和可选的异常部分组成。块是独立存储过程和函数、匿名块、子程序、触发器、包和对象类型方法的结构。...

创建存储过程

存储过程将定义了该存储过程的角色的特权传递给正在调用该存储过程的角色(在执行该存储过程时):CREATE OR REPLACE PROCEDURE update_salary(id INT,new_salary NUMBER)SET SEARCH_PATH='public' SET WORK_MEM '1MB'AUTHID DEFINER ...

文件存储 HDFS

阿里云文件存储HDFS(Apsara File Storage for HDFS)是面向阿里云ECS实例及容器服务等计算资源的文件存储服务。文件存储HDFS允许您就像在Hadoop分布式文件系统(Hadoop Distributed File System) 中管理和访问数据。您无需对现有大数据分析...

PolarDB PostgreSQL 云原生数据库

阿里云自研的下一代关系型云数据库,“世界互联网领先科技成果”,兼容MySQL、PostgreSQL、Oracle语法,存储最高100TB,单库可扩展至16个节点,适用于企业多样化的应用场景。

PolarDB-O 云原生数据库

阿里云自研的下一代关系型云数据库,“世界互联网领先科技成果”,兼容MySQL、PostgreSQL、Oracle语法,存储最高100TB,单库可扩展至16个节点,适用于企业多样化的应用场景。

HybridDB for MySQL

MySQL采用一份数据存储来进行OLTP和OLAP处理,解决了以往需要把一份数据进行多次复制来分别进行业务交易和数据分析的问题,极大的降低了数据存储的成本。\n\nHybridDB for MySQL 免去了以往在线数据库(Operational Database)和离线数据...

PolarDB MySQL 云原生数据库

阿里云(Gartner全球数据库魔力象限领导者)自研的下一代关系型云数据库,兼容MySQL、PostgreSQL、Oracle语法,存储最高100TB,单库可扩展至16个节点,2020年双十一刷新数据库处理峰值记录,达1.4亿TPS。

对象存储 OSS

对象存储服务(Object Storage Service,OSS)是一种海量、安全、低成本、高可靠的云存储服务,适合存放任意类型的文件。容量和处理能力弹性扩展,多种存储类型供选择,全面优化存储成本。

数据库文件存储

数据库文件存储(DBFS),是一款针对数据库场景的云原生共享文件存储服务。它基于共享存储架构设计,通过文件协议提供数据库定制功能,具备企业级存储特性。主要服务于云上自建数据库,基于传统SAN的应用等,为用户提供极致IO性能和高可用...

表格存储 Tablestore

表格存储(Tablestore)是构建在阿里云飞天分布式系统之上的 NoSQL 数据存储服务,提供海量结构化数据的存储和实时访问。

存储网关

存储网关,是一款可在用户IDC和阿里云上部署的软网关,以阿里云OSS为后端存储,通过低成本的虚拟机服务器,给云上和云下应用提供业界标准的NFS和CIFS文件存储服务。

创建子函数

块是独立存储过程和函数、匿名块、子程序、触发器、包和对象类型方法的结构。短语标识符是块本地的意味着标识符(即,变量、游标、类型或子程序)在该块的声明部分中声明,因此可由 SPL 代码在该块的可执行部分和可选异常部分中进行访问。...

混合云存储阵列

混合云阵列(Hybrid Cloud Storage Array)是部署在IDC的一款硬件存储设备,提供本地文件和块存储服务,并且可以无缝的将数据迁移到云端。

文件存储 CPFS

CPFS(Cloud Paralleled File System)是一种并行文件系统。CPFS的数据存储在集群中的多个数据节点,并可由多个客户端同时访问,从而能够为大型高性能计算机集群提供高IOPS、高吞吐、低时延的数据存储服务。

概述

包是函数,存储过程,变量,游标,用户定义的记录类型和记录的集合,这些对象可以通过一个通用的限定符-包的标识符来引用。包的特点如下: 包提供一种简便的方式把执行相关联目的的函数和存储过程组织在一起。用户必须对整个包上具有相应的...

文件存储 NAS

阿里云文件存储NAS是一个可共享访问,弹性扩展,高可靠,高性能的分布式文件系统。兼容POSIX文件接口,可支持上千台弹性计算ECS、容器服务ACK等计算节点共享访问,您无需修改应用程序,即可无缝迁移业务系统上云。

存储过程概述

存储过程是一种SPL程序,可以做为一个单独的SPL应用来调用。当调用存储过程时,它可以输入参数的形式从调用者接收数值, 并且可以输出参数的方式向调用者返回最终执行结果。创建存储过程CREATE PROCEDURE 命令用于定义和命名要存储在...

DROP PROCEDURE

删除存储过程。语法DROP PROCEDURE[IF EXISTS]name[([[argmode][argname] argtype][,.])][CASCADE|RESTRICT]说明DROP PROCEDURE 删除现有程序的定义。要执行该命令,您必须是超级用户或存储过程的所有者。如果这是一个重载存储过程,则必须...

CREATE PROCEDURE

存储过程将定义了该存储过程的角色的特权传递给正在调用该存储过程的角色(在执行该存储过程时):CREATE OR REPLACE PROCEDURE update_salary(id INT,new_salary NUMBER)SET SEARCH_PATH='public' SET WORK_MEM '1MB'AUTHID DEFINER ...

概述

通过将SPL代码组织为子存储过程和子函数,可以有利地运用SPL存储过程和函数程序的能力和功能来构建结构良好且易于维护的程序。通过在SPL程序中声明子存储过程和子函数,可从相对较大的SPL程序中的不同位置多次调用相同的SPL代码。子存储...

1.RPA连接MySQL数据库

RPA连接MySQL数据库阿里云RPA可以使用进行MySQL数据库操作的主要第三方库主要四个,mysqlclient、PyMySQL、peewee和SQLAlchemy。下面我们主要介绍如何在RPA中使用PyMySQL操作MySQL数据库。1. 环境准备首先需要使用阿里云RPA的第三方库打包...

云原生数仓 AnalyticDB PostgreSQL

PostgreSQL/Oracle 的语法生态,新一代向量引擎性能超越传统数据库引擎 10 倍以上,分布式SQL优化器实现复杂查询语句免调优。通过分析型数据库PostgreSQL版可以实现对海量数据的即席查询分析、ETL 处理及可视化探索,是各行业有竞争力的云...
< 1 2 3 4 ... 200 >
共有200页 跳转至: GO

新品推荐

你可能感兴趣

热门推荐

切换为移动版

新人福利专场 阿里云试用中心 企业支持计划 飞天会员助力企业低成本上云 智能财税30天免费试用 云解析DNS新用户首购低至36元/年起 ECS限时升级特惠6.5折