如果 OUT 变量数据类型之一是 oracle.sql.array,如何调用存储过程

问题描述

我正在使用以下代码从我的 mule 应用程序调用存储过程:

call StoredProceduremine(:a,:b,:c)

'a' 和 'b' 是 IN 变量,'C' 变量是 OUT 变量,'C' 变量的数据类型是对象数组(从 fetch 查询返回)。

您能帮我在传入 OUT 参数时使用 'C' 的语法吗?我应该为 OUT 参数中的 'C' 选择什么数据类型?

解决方法

该主题在知识库文章中有详细说明:MemoryMarshal.AsRef

使用数组的数据类型,如下例所示:

double lon(lon) ;
    lon:units = "degrees_east" ;
    lon:long_name = "lon" ;
    lon:standard_name = "longitude" ;
double lat(lat) ;
    lat:units = "degrees_north" ;
    lat:long_name = "lat" ;
    lat:standard_name = "latitude" ;
double time(time) ;
    time:units = "days since 0850-01-01 00:00:00" ;
    time:long_name = "time" ;
    time:calendar = "proleptic_gregorian" ;
double tair(time,lat,lon) ;
    tair:units = "K" ;
    tair:_FillValue = 1.e+30 ;
    tair:long_name = "2 meter air temperature" ;
    tair:days\ since\ 850 = 0.,0.25,0.5,0.75,1.,1.25,1.5,1.75,2.,2.25,2.5,2.75,3.,3.25,3.5,3.75,4.,4.25,4.5,4.75,5.,5.25,5.5,5.75,6.,6.25,6.5,6.75,7.,7.25,7.5,7.75,8.,8.25,8.5,8.75,9.,9.25,9.5,9.75,10.,10.25,10.5,10.75,11.,11.25,11.5...