PL 编译和调试

前提条件 ODC PL 支持现状 功能 支持的对象 支持的数据源 支持版本 编译 函数/存储过程/程序包 OceanBase Oracle、OB Cloud Oracle V2.2.7x、V3.0.0 及之后版本。调试 函数/存储过程/匿名块 OceanBase Oracle V3.2.3 及之后版本。运行 函数...

参数模式

调用存储过程或函数是否可修改形参。实参值如何从调用程序传递到调用程序。当调用程序中发生未处理的异常时,形参值会发生什么。以下内容根据其模式总结了参数的行为。IN 形参初始化为调用它的实参,除非它显式初始化为默认值。IN ...

匿名块

存储过程、函数和触发器程序命名并存储在数据库中以供重新使用。对于快速(一次性)执行(例如测试),您只需输入块而无需提供名称或将其存储在数据库中。此类型的块称为匿名块。匿名块未命名并且不存储在数据库中。从应用程序缓冲区执行...

银泰商业

使用 PolarDB PostgreSQL版(兼容Oracle)后,存储过程可以通过ADAM(Advanced Database&Application Migration)的工具,较快地完成Oracle存储过程到 PolarDB PostgreSQL版(兼容Oracle)的迁移。应用只需要修改数据库连接地址和数据库...

显式锁定

不过,锁住一行会导致一次磁盘写,例如,SELECT FOR UPDATE 将修改选中的行以标记它们被锁住,并且因此会导致磁盘写入。冲突的行级锁 要求的锁模式 当前的锁模式 FOR KEY SHARE FOR SHARE FOR NO KEY UPDATE FOR UPDATE FOR KEY SHARE X ...

DROP PROCEDURE

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

概述

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

DBMS_OBFUSCATION_TOOLKIT

PolarDB PostgreSQL版(兼容Oracle)提供的DBMS_OBFUSCATION_TOOLKIT包支持使用MD5函数和存储过程,且与Oracle兼容。使用须知 2020年3月30日及之后创建的 PolarDB PostgreSQL版(兼容Oracle)集群,会在创建数据库时自动创建 DBMS_...

ROLLBACK

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

ALTER INDEX

除非显式说明,ACCESS EXCLUSIVE 锁被持有。列出多个子命令时,锁的持有将是任何子命令所需的最严格的子命令。RENAME RENAME 形式更改该索引的名称。如果索引与一个表约束(UNIQUE、PRIMARY KEY 或者 EXCLUDE)关联,该约束也会被重命名。...

使用pldebugger插件

PolarDB PostgreSQL版(兼容Oracle)支持多种存储过程语言,例如PLpgSQL、PL/Python、PL/Perl、PL/Tcl、PL/Java等等,您可以使用这些存储过程语言创建对应的函数或存储过程。PolarDB提供了pldebugger插件,可用于调试存储过程。前提条件 ...

COMMIT

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

使用pldebugger插件

PolarDB PostgreSQL版(兼容Oracle)支持多种存储过程语言,例如PLpgSQL、PL/Python、PL/Perl、PL/Tcl、PL/Java等等,您可以使用这些存储过程语言创建对应的函数或存储过程。PolarDB提供了pldebugger插件,可用于调试存储过程。前提条件 ...

概述

本章介绍 PolarDB 提供的内置包及其使用...对于一些特殊的内置包,非超级用户在使用这些包中的函数或存储过程前,必须授予执行权限。对于大多数内置包,默认情况下,可以直接将执行权限授予public组。关于授权的详细信息请参见 GRANT 命令。

DBMS_CRYPTO

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

高度兼容性

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

DBMS_SESSION

PolarDB PostgreSQL版(兼容Oracle)支持使用DBMS_SESSION.SET_ROLE存储过程。函数/存储过程 函数/存储过程 返回类型 说明 SET_ROLE(role_cmd)N/A 执行 SET_ROLE 语句,后跟 role_cmd 中指定的字符串值。与Oracle相比,PolarDB PostgreSQL...

删除存储过程

通过使用DROP PROCEDURE命令,可从数据库中删除存储过程。DROP PROCEDURE[IF EXISTS]name[(parameters)][CASCADE|RESTRICT];其中,name 是要删除的存储过程的名称...在以下示例中先前创建的存储过程被删除:DROP PROCEDURE simple_procedure;

存储过程和函数中的编译错误

当 PolarDB PostgreSQL版(兼容Oracle)分析程序编译存储过程或函数时,它们确认CREATE语句和程序主体(程序中 AS 关键字后面的那部分)符合SPL和SQL构造的语法规则。默认情况下,如果分析程序检测到错误,服务器将终止编译过程。请注意,...

ALTER PROCEDURE

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

概述

使用存储过程和函数的一个重要方面是,能够将数据从调用程序传递给存储过程或函数,并能够从存储过程或函数接收回数据。这将通过使用参数来实现。参数在存储过程或函数定义中声明,在存储过程或函数名称后面用圆括号(())括起。在存储过程...

ALTER PROCEDURE

注意,如果这个过程被标记为 SECURITY DEFINER,接下来它将被作为新拥有者执行。new_schema 该过程的新方案。extension_name 该过程所依赖的扩展的名称。[EXTERNAL]SECURITY INVOKER[EXTERNAL]SECURITY DEFINER 更改该过程是否为一个安全性...

锁定和索引

B-tree、GiST 和 SP-GiST索引:短期的页面级共享/排他锁被用于读/写访问。每个索引行被取得或被插入后立即释放锁。这些索引类型提供了无死锁情况的最高并发性。Hash索引:Hash桶级别的共享/排他锁被用于读/写访问。锁在整个Hash桶处理完成...

DBMS_PROFILER

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

概述

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

pg_locks

但是,一个当前没有被锁的对象不会出现。存在几种不同类型的可锁定对象:整个关系(例如,表)、关系的单独页面、关系的单独元组、事务ID(包括虚拟ID和永久ID)以及一般数据库对象(通过类OID和对象OID标识,就像在 pg_description 或 pg_...

pg_locks

但是,一个当前没有被锁的对象根本不会出现。有多种不同类型的可锁对象:整个关系(如表)、关系的单个页、关系的单个元组、事务 ID(包括虚拟和永久 ID)和普通数据库对象(由类 OID 和对象 OID 标识,和 pg_description 或 pg_depend 中...

LOCK

描述 LOCK TABLE 获得一个表级锁,必要时会等待任何冲突锁被释放。如果指定了 NOWAIT,LOCK TABLE 不会等待以获得想要的锁:如果它不能立刻得到,该命令会被中止并且发出一个错误。一旦获取到,该锁会被在当前事务中一直持有(没有 UNLOCK ...

pg_index

indislive bool 如果为假,索引正处于删除过程中,并且必须所有处理忽略(包括HOT安全的决策)。indisreplident bool 如果为真,这个索引选择为使用 ALTER TABLE.REPLICA IDENTITY USING INDEX.的“replica identity”。indkey int2...

调用存储过程

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

CALL

语法 CALL procedure_name '('[argument_list]')' 说明 使用 CALL 语句调用存储过程。要使用 CALL 语句,您必须对 CALL 语句调用的存储过程具有 EXECUTE 特权。参数 参数 说明 procedure_name procedure_name 是(可能是 schema 限定的)...

存储过程中使用holdable cursor

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

存储过程中使用holdable cursor

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

概述

子程序是指子存储过程或子函数,它们在外观上与存储过程和函数几乎完全相同,但不同之处在于存储过程和函数是独立程序,它们单独存储在数据库中,并可通过其他SPL程序或从PSQL调用。子程序只能从创建它们的独立程序中调用。

DBMS_LOCK

PolarDB 支持 DBMS_LOCK.SLEEP 存储过程。表 1.DBMS_LOCK 函数/存储过程 函数/存储过程 返回类型 描述 SLEEP(seconds)N/A 暂停当前会话,暂停时长为您指定的秒数。SLEEP SLEEP存储过程用于暂停当前会话,暂停时长为您指定的秒数。SLEEP...

应用级别的数据完整性检查

SELECT FOR UPDATE 临时阻塞 其他事务,让它们不能获取该相同的锁或者执行一个会影响被锁定行的 UPDATE 或 DELETE,但是一旦正持有该所锁的事务提交或回滚,一个被阻塞的事务将继续执行冲突操作,除非当锁被持有时一个该行的实际 UPDATE 被...

新建存储过程

存储过程作用 提高应用程序的通用性和可移植性:新建存储过程完成后,可以在程序中多次调用,无需重新编写该存储过程的 SQL 语句,且支持修改存储过程,对程序源代码无影响,从而提高程序的可移植性。提高 SQL 执行速度:存储过程编译...

ROLLBACK

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

用法限制

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

创建存储过程

存储过程重载是一项 PolarDB PostgreSQL版(兼容Oracle)功能-独立存储过程的重载与 Oracle 数据库不兼容。要更新现有存储过程的定义,可使用 CREATEOR REPLACE PROCEDURE。无法以这种方式更改存储过程的名称或参数类型(如果您尝试过,...
共有200条 < 1 2 3 4 ... 200 >
跳转至: GO
产品推荐
云服务器 安全管家服务 安全中心
这些文档可能帮助您
对象存储 文件存储 CPFS 商标服务 弹性公网IP 短信服务 人工智能平台 PAI
新人特惠 爆款特惠 最新活动 免费试用