You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

本地Oracle迁移至Amazon RDS Oracle:Java外部子程序处理方案问询

问题背景

我们的应用99%由PL/SQL编写,剩余1%是作为PL/SQL Java外部子程序存在的Java方法。在Oracle内部调用Java的原因是需要按照Java的方式精确解析日期,使用Java SimpleDateFormat格式,例如:

"yyyy.MM.dd G 'at' HH:mm:ss z"

运行AWS Schema Conversion Tool (SCT)后,该函数被标记为问题:

Issue 1701: AWS RDS doesn't support Java stored objects

Recommended action: Try to convert an underlying Java resource manually.

我使用Oracle已有数十年,近期负责该应用的迁移,已完成基础AWS培训。从宏观角度看,使用AWS Lambda函数(或许结合Lambda SnapStart)可能是一个解决方案,请问如何从Oracle调用AWS Lambda函数?

更新:我已找到答案并补充迁移流程细节。我们计划迁移至Amazon RDS Oracle版本,希望标记该问题的Schema Conversion Tool能更新适配此功能。

我们通过PL/SQL Java包装器在Oracle中定义要调用的Java方法,示例如下:

CREATE OR REPLACE AND COMPILE JAVA SOURCE NAMED FRAMEWORK."DataStructure" AS

import java.text.SimpleDateFormat;
...
{

    public static int checkDateFormat(String date_str, String date_format) 
    {
...
    }
...
}

随后我们的包定义Java函数调用如下:

FUNCTION TO_DATE_JAVA_FORMAT_CHECK(
    p_source_text IN VARCHAR2
    , p_format  IN VARCHAR2 )
RETURN PLS_INTEGER   
AS LANGUAGE JAVA NAME 'DataStructure.checkDateFormat(java.lang.String,java.lang.String) return int'
;

内容的提问来源于stack exchange,提问作者Mark Stewart

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 11:50:58