我们如何在Oracle中使用另一个模式的程序包的功能

时间:2018-07-03 09:13:57

标签: oracle

我在软件包中有一个函数,我想在另一个模式中访问该函数。 我已经将程序包的执行权授予了另一个架构,但是我无法使用该程序包的功能。

# generate test data with NA values
test_df <- iris
test_df[c(1, 3, 7), ] <- NA
# write the file
write.xlsx(test_df, file = "test.xlsx", 
    keepNA = TRUE)

现在,我想以其他架构访问Package PKG_Test is FUNCTION FUN_TESTING(x IN VARCHAR2) RETURN VARCHAR2; End;

1 个答案:

答案 0 :(得分:1)

  

我遇到了错误

ORA-00904:---------- 00904. 00000 - "%s: invalid identifier" *Cause: *Action: –

您需要授予其他用户执行程序包的权限:

GRANT EXECUTE ON PKG_test TO other_user;

然后OTHER_USER可以通过在函数名称前添加模式名称和程序包名称来调用它:

BEGIN
  DBMS_OUTPUT.PUT_LINE( OWNING_USER.PKG_TEST.FUN_TESTING( 1 ) );
END;
/