如何在Java代码中动态获取有关Oracle数据库中同义词的函数或过程参数的信息

时间:2018-06-11 09:49:47

标签: java oracle jdbc

我在浏览stackoverview时获得了获取同义词表列的解决方案 DatabaseMetaData.getColumns returning an empty ResultSet for synonyms

但是无法获得任何关于在Java代码中动态获取函数参数的参考资料,以获取数据库中的函数同义词。需要建议

1 个答案:

答案 0 :(得分:0)

  

...一个函数,比如schema1中的func1()被创建为同义词函数as   schema2中的test_func()

您可以使用数据字典视图来获取真实函数名称,函数所有者甚至过程参数。

在这里,你可以获得同义词的信息 - 所有者,真实的功能名称:

select table_owner, table_name, table_owner||'.'||table_name full_function_name
from   all_synonyms
where  owner in ('PUBLIC',user)
and    synonym_name = 'FUNC1'

定义了函数的所有者(在您的情况下为schema2名称)和实际函数名称 - 您可以从db查询中提取参数:

select * 
from   all_arguments
where  owner = _table_owner_
and    object_name = _table_name_

希望这有帮助。