【发布时间】:2015-04-30 23:57:30
【问题描述】:
我有一个调用 Oracle 数据库包函数所需的 Grails 应用程序。
函数的返回值为RECORDOracle数据类型。
RECORD 映射到什么 Java Oracle 数据类型?
我找到了this page,但是,我要么是盲人,要么它没有我需要的信息。
示例代码:
包类型声明
TYPE subjectDuration IS RECORD (
min_duration PLS_INTEGER,
max_duration PLS_INTEGER
);
功能
FUNCTION getSubjectDuration(
subject_code IN PACKGE.SUBJ_CODE%type,
course_number IN PACKGE.CRSE_NUMB%type,
term_code IN PACKGE.EFF_TERM%type
)
RETURN subjectDuration
IS
record_rowid ROWID;
subject_duration subjectDuration;
BEGIN
...
/*function code */
RETURN(subject_duration);
END;
调用上述函数的 Grails 代码
String packageCheck = "BEGIN packge.getSubjectDuration(:subjectCode, :courseNumber, :termCode); END; "
sql.call(packageCheck, [subjectCode: subjectCode, courseNumber: courseNumber, termCode: termCode],
// OracleTypes.OTHER is the wrong type. I need the correct type for RECORD, which doesn't exist in OracleTypes.
Sql.resultSet(OracleTypes.OTHER)) { cursorResults ->
if (cursorResults.next()) {
def result = cursorResults.getAt(0)
log.debug(result)
}
}
【问题讨论】:
标签: oracle grails jdbc sqldatatypes