用法限制

此外,下表显示了用作存储过程或函数参数的游标变量允许的参数模式(具体取决于存储过程或函数中对游标变量的操作)。表 1.允许的游标变量参数模式 操作 IN IN OUT OUT OPEN 否 是 否 FETCH 是 是 否 CLOSE 是 是 否 例如,如果一个存储...

ROLLBACK

中止当前事务。语法 ROLLBACK[WORK]说明 ROLLBACK 回滚当前事务并导致废弃对事务执行的所有更新。...注意 如果运行时堆栈中存在 Oracle 样式的 SPL 存储过程,则在 plpgsql 过程中执行 ROLLBACK 会引发错误。示例 中止所有更改:ROLLBACK;

COMMIT

提交当前事务。语法 COMMIT[WORK]说明 ...在 plpgsql 过程中执行 COMMIT 时,如果运行时堆栈上有 Oracle 样式的 SPL 存储过程,则会引发错误。参数 参数 说明 WORK 可选关键字-没有任何效果。示例 提交当前事务并使所有更改永久保存:COMMIT;

示例

以下存储过程使用 SELECT 命令打开给定的游标变量,该命令检索所有行。CREATE OR REPLACE PROCEDURE open_all_emp(p_emp_refcur IN OUT SYS_REFCURSOR)IS BEGIN OPEN p_emp_refcur FOR SELECT empno,ename FROM emp;END;此变体使用 SELECT ...

DBMS_SQL

示例 该示例展示了存储过程中关闭游标的一般方法。DECLARE c NUMBER;BEGIN c:=DBMS_SQL.OPEN_CURSOR();DBMS_SQL.CLOSE_CURSOR(c);END;COLUMN_VALUE 该存储过程用于返回游标中给定位置的元素的值。语法 DBMS_SQL.COLUMN_VALUE(c IN INTEGER,...

ALTER PROCEDURE

options[EXTERNAL]SECURITY DEFINER 指定 SECURITY DEFINER 以指示服务器使用创建了存储过程的用户的特权执行该存储过程。为了实现兼容性而支持 EXTERNAL 关键字,但被忽略。[EXTERNAL]SECURITY INVOKER 指定 SECURITY INVOKER 以指示...

DROP PROCEDURE

PolarDB PostgreSQL版(兼容Oracle)允许重载存储过程名称,因此在 PolarDB PostgreSQL版(兼容Oracle)中,重载存储过程的 DROP PROCEDURE 命令需要使用输入参数数据类型给定的存储过程特征。使用 IFEXISTS、CASCADE 或 RESTRICT 与 ...

CALL

要使用 CALL 语句,您必须对 CALL 语句调用的存储过程具有 EXECUTE 特权。参数 参数 说明 procedure_name procedure_name 是(可能是 schema 限定存储过程名称。argument_list argument_list 指定存储过程所需参数的列表,以逗号分隔。...

调用存储过程

您可从另一个 SPL 程序调用存储过程,只需指定该存储过程名称,后跟其参数(如果有),最后以分号结尾。name[([parameters])];其中:name 是存储过程的标识符。parameters 是实参的列表。说明 如果没有要传递的实参,则可以用空参数列表...

匿名块

块通常作为存储过程、函数、子程序或触发器的一部分编写。存储过程、函数和触发器程序被命名并存储在数据库中以供重新使用。...以下各节讨论如何创建可以存储在数据库中并被另一个存储过程、函数或应用程序反复调用的存储过程或函数。

概述

示例 下面是一个采用参数的存储过程的示例:CREATE OR REPLACE PROCEDURE emp_query(p_deptno IN NUMBER,p_empno IN OUT NUMBER,p_ename IN OUT VARCHAR2,p_job OUT VARCHAR2,p_hiredate OUT DATE,p_sal OUT NUMBER)IS BEGIN SELECT empno,...

位置与命名参数表示法

在将参数传递给函数或存储过程时,您可以使用位置或命名参数表示法。如果使用位置表示法指定参数,则必须按其声明的顺序列出参数;如果使用命名表示法指定参数,则参数的顺序无关紧要。要使用命名表示法指定参数,请列出每个参数的名称,...

RETURN 语句

第一种形式的 RETURN 语句用于终止返回 void 的存储过程或函数。语法为:RETURN;第二种形式的 RETURN 将值返回给调用者。语法为:RETURN expression;expression 必须计算为与函数的返回类型相同的数据类型。以下示例使用 RETURN 语句将值...

RAISE_APPLICATION_ERROR

利用 RAISE_APPLICATION_ERROR 存储过程,开发者可通过导致异常,有意中止从中调用该存储过程的 SPL 程序中的处理。异常的处理方式与 异常处理 中描述的相同。此外,RAISE_APPLICATION_ERROR 存储过程还会向程序提供用户定义的代码和错误...

DBMS_RANDOM

表 1.DBMS_RANDOM 函数/存储过程 函数/存储过程 返回类型 描述 INITIALIZE(val)N/A 使用指定的种子值初始化 DBMS_RANDOM 随机包。已弃用,但支持向后兼容。NORMAL()NUMBER 返回一个NUMBER类型的随机数。RANDOM INTEGER 返回的是一个INTEGER...

DBMS_OUTPUT

ENABLE Procedure 该存储过程用于允许PUT、PUT_LINE、NEW_LINE和GET_LINE存储过程的调用。语法 DBMS_OUTPUT.ENABLE(buffer_size IN INTEGER DEFAULT 20000);参数说明 参数 说明 buffer_size(可选参数)消息缓冲区的最大长度。以字节为单位...

高度兼容性

存储过程开发语言 存储过程开发语言是业务应用常用的一种数据库开发语言,被很多应用开发同学所熟悉,PolarDB PostgreSQL版(兼容Oracle)对Oracle存储过程语言有着很高的兼容度,包括COLLECTION、GOTO、SAVEPOINT、ROLLBACK TO、CURSOR、...

FETCH

cursor_name 一个已打开游标的名称。输出 如果成功完成,FETCH 命令返回一个下面形式的命令标签:FETCH count count 是取得的行数(可能为零)。注意在psql中,命令标签将不会实际显示,因为psql会显示被取得的行。说明 如果想要使用 FETCH...

DBMS_SESSION

语法 该存储过程使用了自定义类型作为参数,该类型的语法和存储过程的语法如下:TYPE AppCtxRecTyp IS RECORD(namespace VARCHAR2(30),attribute VARCHAR2(30),value VARCHAR2(256));TYPE AppCtxTabTyp IS TABLE OF AppCtxRecTyp;DBMS_...

CREATE TYPE BODY

proc_name 要创建的存储过程的名称。SELF[IN|IN OUT]name 对于成员方法,存在一个名为 SELF 的隐式内置参数,其数据类型就是正在定义的对象类型的数据类型。SELF 引用当前正在调用方法的对象实例。SELF 可以在参数列表中显式声明为 IN 或 ...

INSERT

以下是使用从调用程序传递的数据插入新员工的存储过程的示例。CREATE OR REPLACE PROCEDURE emp_insert(p_empno IN emp.empno%TYPE,p_ename IN emp.ename%TYPE,p_job IN emp.job%TYPE,p_mgr IN emp.mgr%TYPE,p_hiredate IN emp.hiredate%...

DBMS_APPLICATION_INFO

参数 参数 描述 client_info 当前会话提供给SET_CLIENT_INFO存储过程的最后一个客户信息。READ_MODULE 语法 DBMS_APPLICATION_INFO.READ_MODULE(module_name OUT VARCHAR2,action_name OUT VARCHAR2);参数 参数 描述 module_name 当前会话...

pg_language

目录 pg_language 注册了可用于编写函数或存储过程的语言。列名称 列类型 描述 oid oid 行标识符。lanname name 语言的名字。lanowner oid 语言的拥有者。lanispl bool 内部语言为假(如SQL),用户定义语言为真。当前,pg_dump仍然使用这...

赋值

以下示例显示存储过程的可执行部分中的赋值语句的典型使用。CREATE OR REPLACE PROCEDURE dept_salary_rpt(p_deptno NUMBER)IS todays_date DATE;rpt_title VARCHAR2(60);base_sal INTEGER;base_comm_rate NUMBER;base_annual NUMBER;BEGIN...

存储过程中使用holdable cursor

背景信息 在存储过程中使用动态游标时,PostgreSQL原生不支持将动态游标设置为holdable模式(非存储过程中支持),如果在存储过程中打开一个动态游标并执行事务修改保存操作后,再次尝试获取数据将会报错,因为进行事务保存操作时当前事务...

存储过程中使用holdable cursor

背景信息 在存储过程中使用动态游标时,PostgreSQL原生不支持将动态游标设置为holdable模式(非存储过程中支持),如果在存储过程中打开一个动态游标并执行事务修改保存操作后,再次尝试获取数据将会报错,因为进行事务保存操作时当前事务...

DBMS_CRYPTO

DBMS_CRYPTO 包提供的函数和存储过程允许您对RAW、BLOB或CLOB数据进行加密或解密。您可以使用 DBMS_CRYPTO 函数来产生强加密型随机值。DBMS_CRYPTO函数/存储过程 函数/存储过程 返回类型 描述 DECRYPT(src,typ,key,iv)RAW 解密RAW类型的...

概述

场景一:PolarDB PostgreSQL版(兼容Oracle)到ECS自建PostgreSQL的DBLink 客户原来使用的是ECS自建PostgreSQL数据库,在迁移至 PolarDB PostgreSQL版(兼容Oracle的过程中,由于部分原因,先迁移了一部分业务系统上 PolarDB PostgreSQL...

自建Oracle迁移至阿里云消息队列Kafka版

目标 阿里云消息队列Kafka版 的存储空间须大于源数据库自建Oracle占用的存储空间。目标 阿里云消息队列Kafka版 中已创建用于接收迁移数据的Topic,详情请参见 步骤一:创建Topic。建议在执行数据迁移前了解源库为Oracle时DTS支持的能力和...

DBMS_PROFILER

表 1.DBMS_PROFILER函数/存储过程 函数/存储过程 类型 返回类型 描述 FLUSH_DATA 函数、存储过程 Status code、exception 刷新当前会话中收集的性能数据。GET_VERSION(major OUT,minor OUT)存储过程 N/A 返回 DBMS_PROFILER 版本信息。...

概述

SPL 是一种高效的过程式编程语言,用于为 PolarDB PostgreSQL版(兼容Oracle)编写自定义存储过程、函数、触发器和包。SPL提供如下特性:完整的过程编程功能,以补充 SQL 语言。一种通用语言,用于为 PolarDB PostgreSQL版(兼容Oracle)...

OGG for Big Data

下面将介绍Oracle/OGG相关安装和配置过程Oracle的安装将不做介绍,另外需要注意的是:Oracle/OGG相关参数配置以熟悉Oracle/OGG的运维人员配置为准,本示例只是提供一个可运行的样本。OGG 源端配置 本文以Oracle11g为例,给出一个可用示例...

概述

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

存储过程

存储过程与函数的区别 AnalyticDB PostgreSQL 6.0版 的函数(Function)可以实现大部分的存储过程功能,通常建议您使用函数来实现存储过程业务,但是存储过程仍然是许多 AnalyticDB PostgreSQL版 用户、及PostgreSQL从业者们期待已久的功能...

ROLLBACK

ROLLBACK 命令撤消当前事务期间执行的所有数据库更新,并结束当前事务。ROLLBACK[WORK];ROLLBACK 命令可在匿名块、存储...说明 如果运行时堆栈上存在 Oracle 样式的 SPL 过程,则在 PLPGSQL 存储过程中执行 COMMIT 或 ROLLBACK 将会引发错误。

SLS触发器

print(event_obj)#从 event.source 中获取日志项目名称、日志仓库名称、日志服务访问 endpoint、日志起始游标、日志终点游标以及分区 id#Get the name of log project,the name of log store,the endpoint of sls,begin cursor,end ...

SLS触发器

print(event_obj)#从 event.source 中获取日志项目名称、日志仓库名称、日志服务访问 endpoint、日志起始游标、日志终点游标以及分区 id#Get the name of log project,the name of log store,the endpoint of sls,begin cursor,end ...

概述

子存储过程和子函数具有以下特点:子存储过程和子函数的语法、结构和功能几乎与独立的存储过程和函数相同。主要区别在于,是使用关键字PROCEDURE或FUNCTION而不是CREATE PROCEDURE或CREATEFUNCTION来声明子程序。子存储过程和子函数提供对...

PREPARE TRANSACTION

当前在已经执行过任何涉及到临时表或者会话的临时命名空间、创建 WITH HOLD 的游标或者执行 LISTEN、UNLISTEN 或 NOTIFY 的事务中,不允许 PREPARE 该事务。这些特性与当前会话绑定得太过紧密,所以对一个要被准备的事务来说没有什么用处...

CREATE PACKAGE

如果包括此子句,则使用全常量参数对存储过程的任何调用将立即替换为存储过程值。RNDS|RNPS|TRUST|WNDS|WNPS 为了兼容性目的而接受这些关键字,但会忽略它们。示例 包规格 empinfo 包含三个公共组件:公共变量、公共存储过程和公共函数。...
共有200条 < 1 2 3 4 ... 200 >
跳转至: GO
产品推荐
云服务器 安全管家服务 安全中心
这些文档可能帮助您
对象存储 文件存储 CPFS 云存储网关 弹性公网IP 短信服务 人工智能平台 PAI
新人特惠 爆款特惠 最新活动 免费试用