gpt4 book ai didi

java - 从java获取存储过程OUT参数名称

转载 作者:行者123 更新时间:2023-12-01 14:23:28 25 4
gpt4 key购买 nike

是否可以从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”。有人可以给我一些想法吗?

最佳答案

我认为没有办法直接从 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,但也要在查询中指定所有者

关于java - 从java获取存储过程OUT参数名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17357546/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com