首批通过分布式安全可靠测评,为关键业务系统打造
PL 编译
更新时间:2026-07-03 12:52:28
本文旨在介绍如何在 SQL 窗口中编译 PL 语句。
背景信息
PL(Procedural Language)是一种过程化程序语言,是对 SQL 语句的扩展。 PL 在普通 SQL 语句的基础上增加了编程语言的特点,将数据操作和查询语句组织在 PL 代码的过程化代码中,通过逻辑判断、循环等操作实现复杂的功能。
使用 PL 可以编写具有高级功能的程序,能够将业务逻辑封装在数据库内部,提供更好的抽象性和安全性,同时减少了网络的交互,调用速度更快,从而提升整体性能。
PL 程序的开发工作是数据库服务开发人员重要的日常工作,与 SQL 语句的支持模块类似,PL 的调试模块同样为非常重要的功能。因此,在编程过程中,开发人员需要一个 PL 开发区域和调试功能。
PL 语句可用于编写函数、存储过程、程序包和触发器等数据库对象。
SQL 控制台支持 PL 对象和匿名块的创建、编译、运行和调试等功能。用户可在匿名块窗口的编辑区域中编译 PL 语句,同时可对已创建的 PL 对象进行编辑和调试等操作。
本文档以创建 OceanBase Oracle 类型的存储过程为例,在数据库 ODC_TEST 中创建存储过程 PROC_VARCHAR2。
前提条件
拥有当前租户的数据库账号和密码以登录 SQL 控制台。
SQL 控制台支持 PL 编译函数/存储过程/程序包,需要保证您的 OceanBase Oracle/OB Cloud Oracle 版本为 V2.2.7x、V3.0.0 及之后。
SQL 控制台支持 PL 运行函数/存储过程/程序包/匿名块:
PL 运行函数/存储过程时,需要保证您的 OceanBase Oracle/OB Cloud Oracle/OceanBase MySQL/OB Cloud MySQL 版本为 V2.0.x 及之后、MySQL 版本为 V5.7。
PL 运行程序包/匿名块时,需要保证您的 OceanBase Oracle/OB Cloud Oracle 版本为 V2.0.x 及之后。
注意
- 如果数据源为 OceanBase 类型,有且仅能通过 OBProxy 连接,该实例将不支持调试。
- 匿名块窗口仅在 OceanBase Oracle/OB Cloud Oracle 数据源提供。
PL 编译
登录 SQL 控制台后,在 SQL 窗口中输入下列语句创建存储过程
PROC_VARCHAR2。CREATE OR REPLACE PROCEDURE PROC_VARCHAR2(p1 in VARCHAR2, p2 out VARCHAR2, p3 in out VARCHAR2) as v1 varchar2(64) := 'hello,oceanbase'; begin dbms_output.put_line(p1); dbms_output.put_line(p3); p2 := 'hello,odc'; end;
在 SQL 窗口的左侧导航栏,查询已创建的存储过程
PROC_VARCHAR2,选择
> 编译 。
编译 PL 语句并查看编译结果。
