本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在 Aurora Post SQL gre 中处理过载的 Oracle 函数——兼容
由 Sumana Yanamandra 创作 () AWS
环境:PoC 或试点 | 源:Oracle 数据库 | 目标:Aurora Postgre SQL-兼容 |
R 类型:更换平台 | 工作负载:Oracle | 技术:数据库;迁移 |
AWS服务:亚马逊 Aurora |
Summary
您从本地 Oracle 数据库迁移到 Amazon Aurora Postgre SQL 兼容版的代码可能包含过载的函数。这些函数具有相同的定义,即相同的函数名称以及相同的输入 (IN
) 参数数量和数据类型,但输出 (OUT
) 参数的数据类型或数量可能会有所不同。
这些参数不匹配可能会导致 Postgre 出现问题SQL,因为很难确定要运行哪个函数。此模式说明了在将数据库代码迁移到 Aurora Postgre SQL-Compatible 时如何处理过载的函数。
先决条件和限制
先决条件
作为源数据库的 Oracle 数据库实例
将SQL兼容 Aurora Postgre 的数据库实例作为目标数据库(参见 Aurora 文档中的说明)
产品版本
Oracle 数据库 9i 或更高版本
甲骨文SQL开发者版本 18.4.0.376
pgAdmin 4 个客户端
Aurora Postgre SQL-兼容版本 11 或更高版本(参见 Aurora 文档中的识别亚马逊 Aurora Postgre SQL 版本)
工具
AWS服务
Amazon Aurora Postgre SQL 兼容版是一款完全托管、ACID兼容的关系数据库引擎,可帮助您设置、操作和扩展 Postgre 部署。SQL
其他工具
Oracle SQL 开发人员
是一个免费的集成开发环境,可在传统部署和云部署中在 Oracle 数据库中使用SQL。 pgAdmin
是 Postgre SQL 的开源管理工具。它提供了一个图形界面,可帮助您创建、维护和使用数据库对象。
操作说明
任务 | 描述 | 所需技能 |
---|---|---|
在 Postgre 中创建一个SQL具有一个输入参数和一个输出参数的函数。 | 以下示例说明了在 Aurora Postgre SQL-Compatible
| 数据工程师,Aurora Postgre SQL-兼容 |
在 Postg SQL re 中运行该函数。 | 运行您在上一步中创建的函数。
应显示以下输出。
| 数据工程师,Aurora Postgre SQL-兼容 |
任务 | 描述 | 所需技能 |
---|---|---|
在 Post SQL gre 中使用相同的函数名称创建重载函数。 | 在 Aurora Postgre SQL-Compatible 中创建一个重载函数,该函数使用与之前的函数名称相同的函数名称。以下示例也被命名
| 数据工程师,Aurora Postgre SQL-兼容 |
在 Postg SQL re 中运行该函数。 | 当您运行此函数时,它会失败并显示以下错误消息。
之所以发生这种情况,是因为 Aurora Postgre SQL-Compatible 不支持直接重载函数。它无法确定要运行哪个函数,因为尽管输入参数相同,但函数的第二个版本中的输出参数数量不同。 | 数据工程师,Aurora Postgre SQL-兼容 |
任务 | 描述 | 所需技能 |
---|---|---|
INOUT添加到第一个输出参数。 | 解决方法是,通过将第一个输出参数表示为
| 数据工程师,Aurora Postgre SQL-兼容 |
运行修改后的函数。 | 使用以下查询运行已更新的函数。您传递一个空值作为此函数的第二个参数,因为您声明此参数为
该函数现已成功创建。
| 数据工程师,Aurora Postgre SQL-兼容 |
验证结果。 | 验证带有重载函数的代码是否已成功转换。 | 数据工程师,Aurora Postgre SQL-兼容 |
相关资源
使用亚马逊 Aurora Postgre SQL(Aurora 文档)
Oracle 中的函数重载
(Oracle 文档) Postgre 中的函数重载SQL(Postgre
文档SQL)