1

我必须将存储过程从 Oracle 数据库导入 Informatica。但是当我尝试使用存储过程转换时,我无法查看相应的存储过程。我正在使用正确的 oracle 驱动程序,因为我在导入目标数据库表时没有任何问题。我尝试使用查看 oracle 数据库中的存储过程, select * from all_objects where object_type='FUNCTION'但找不到我要查找的函数。请就这些问题给我建议:

  • 我们可以查看Oracle中存储过程/函数的列表和代码吗

  • 我在 Informatica 存储过程转换中缺少什么?

4

2 回答 2

1
  1. 将对象导入 Informatica 时,列出的对象始终归“连接”用户所有。如果您的对象由其他用户拥有,您将看不到它。要查看不属于连接用户的对象,您必须在连接时在模式文本框中选择“全部”。

  2. 您应该寻找 object_type='PROCEDURE' 而不是“FUNCTION”。因此,您的查询应为select * from all_objects where object_type='PROCEDURE'

  3. 如果所有这些都完成了,但您仍然看不到该对象,请检查该对象对您的连接用户的权限。为此,最好的课程是a。要求您的 dba 将该对象的执行权限授予您的连接用户。或 b。以该对象的所有者身份连接到数据库并运行以下命令 grant execute on <object_name> to <connecting_user>

于 2012-09-22T04:37:41.853 回答
1

如果你没有得到任何结果..

select * from all_objects where object_type='FUNCTION'

这要么意味着您没有任何功能,要么当前用户没有执行任何功能的权限。找出哪个用户拥有该功能并授予以下权限。

例子 :

grant execute on <owner>.<function_name> to ETL_USER;

为避免混淆,请确保 informatica 连接中的用户名与连接数据库时使用的用户名相同。

于 2012-09-21T20:00:09.683 回答