gpt4 book ai didi

oracle - 'ORA-00942 : table or view does not exist' only when running within a Stored procedure

转载 作者:行者123 更新时间:2023-12-02 05:14:45 24 4
gpt4 key购买 nike

对于 PL-SQL 人员来说,这应该很容易选择。在将此问题标记为重复之前,请确保虽然错误消息可能很常见,但根本问题与上一个问题相同。如果是这样,请提供已解决的确切逻辑重复问题的链接。我

当我登录到我的架构时,我执行以下 PL-SQL 代码:

DECLARE
v_rpt_per_key NUMBER := 0;
BEGIN

SELECT MAX(rpt_per_key)
INTO v_rpt_per_key
FROM rxfinods_sta.hd_invc_ln_item_dtl_stat;

dbms_output.PUT_LINE('v_RPT_PER_KEY=' || v_rpt_per_key);

END;
/

查询成功执行,并且 RPT_PER_KEY 的最大值被写入 Toad 中的输出窗口。

但是,当我在过程中执行基本相同的代码时。

CREATE OR REPLACE PROCEDURE hd_purge_test
IS
v_rpt_per_key NUMBER := 0;
BEGIN

SELECT MAX(stat.rpt_per_key)
INTO v_rpt_per_key
FROM rxfinods_sta.hd_invc_ln_item_dtl_stat stat;
--HD_INVC_LN_ITEM_DTL_STAT

dbms_output.PUT_LINE('v_RPT_PER_KEY=' || v_rpt_per_key);

EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS THEN
-- Consider logging the error and then re-raise
RAISE;
END hd_purge_test;

我收到一个错误,表明该表不存在。

[Warning] ORA-24344: success with compilation error
14/21 PL/SQL: ORA-00942: table or view does not exist
9/4 PL/SQL: SQL Statement ignored
(1: 0): Warning: compiled but with compilation errors

由于我能够使用相同的凭据查询该表,这证明我的 ID 有权从表中进行选择。难道我不应该有权从我在相同的登录模式下创建的存储过程查询表吗?是否需要执行一些额外的拨款?

注意:如果我从登录架构中的任何表中进行选择,该过程将成功编译。

最佳答案

听起来像是通过角色授予选择权限的问题,而不是直接授予模式。请参阅ORA-00942: table or view does not exist (works when a separate sql, but does not work inside a oracle function) .

关于oracle - 'ORA-00942 : table or view does not exist' only when running within a Stored procedure,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30850479/

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