是否可以从java代码中获取存储过程[Oracle]的OUT参数名称。像
PROCEDURE Test(
ecm_property OUT SYS_REFCURSOR,
p_return_value OUT NOCOPY INT,
p_error_message OUT NOCOPY VARCHAR2)
AS
BEGIN..
从上面,我想得到名称“ p_return_value ”和“ p_error_message ”。 有人可以给我一些想法。
答案 0 :(得分:1)
我认为没有办法直接从Java中获取元数据,但您可以查询数据字典以获取此信息:
select argument_name, data_type, in_out
from user_arguments
where package_name is null
and object_name = 'TEST'
order by subprogram_id, position;
ARGUMENT_NAME DATA_TYPE IN_OUT
------------------------------ ------------------------------ ---------
ECM_PROPERTY REF CURSOR OUT
P_RETURN_VALUE NUMBER OUT
P_ERROR_MESSAGE VARCHAR2 OUT
如果它是包的一部分,那么将其作为package_name
;如果不是那么指定在其他地方使用相同名称时为null则更安全。如果程序过载,那么你会得到几个名字相似或相同的结果;我已按subprogram_id
订购,因此它们至少组合在一起。
如果它不在您的架构中,那么您可以查看all_arguments
,但也可以在查询中指定owner
。