本地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
相关产品推荐
相关产品推荐

