我有这个过程,但当我尝试执行它时,它返回给我以下消息:
CREATE OR REPLACE PROCEDURE SCHEMAUSER.GEN_BULL_PAY(p_deadline IN VARCHAR2)
as
BEGIN
select BULL_ROW
from SCHEMAUSER.BULL_CP
where adress is not null and ACCOUNT_TYPE = 'NATIO'
and TERM = to_date(p_deadline , 'dd/mm/yyyy')
or (ACCOUNT_TYPE is null or CODE_PAYMENT_METHOD = 'M')
order by NUM_RCAR, ITEM_ORDER;
commit;
end;
字符串
执行此查询后:
begin
SCHEMAUSER.GEN_BULL_PAY;
end;
型
我明白了
[2023-07-13 15:45:06] [65000][6550]
[2023-07-13 15:45:06] ORA-06550: Ligne 2, colonne 17 :
[2023-07-13 15:45:06] PLS-00302: PLS-00302: component 'GEN_BULL_PAY' must be declared
[2023-07-13 15:45:06] ORA-06550: Ligne 2, colonne 5 :
[2023-07-13 15:45:06] PL/SQL: Statement ignored
[2023-07-13 15:45:06] Position: 22
型
1条答案
按热度按时间yh2wf1be1#
首先,程序无效; PL/SQL需要一个
INTO
子句,而您没有它。字符串
让我们使它有效:
型
由于错误,您得到:我怀疑在那个模式中还有一个对象与模式本身同名。例如,一个包:
型
因此,当你通过指定所有者名称(在我的例子中是
scott
)来调用函数时,Oracle会抱怨,因为在我的例子中,gen_bull_pay
不存在于名为scott
的包中:型
如果省略所有者名称,则它可以工作:
型
有关更多信息,请查看模式范围中的名称解析