gpt4 book ai didi

sql - oracle 11g 编译程序

转载 作者:行者123 更新时间:2023-12-04 05:30:05 26 4
gpt4 key购买 nike

我用客户端松鼠在oracle 11g中创建了一个简单的过程,这是代码

create or replace procedure EXAMPLE_P is
begin
1+2;
end;/

在执行时我收到了这个警告
Warning:   Warning: execution completed with warning
SQLState: 99999
ErrorCode: 17110
Position: 0

Query 1 of 1, Rows read: 0, Elapsed time (seconds) - Total: 0.031, SQL query: 0.031, Building output: 0

问题在这里,我无法调用我的程序。
begin
EXAMPLE_P();
end;/

执行上面的块时出现此错误。
Error: ORA-06550: line 2, column 9:
PLS-00302: component 'EXAMPLE_P' must be declared
ORA-06550: line 2, column 2:
PL/SQL: Statement ignored

SQLState: 65000
ErrorCode: 6550
Position: 37

该过程存在于表 ALL_OBJECTS 中,状态为 INVALID。
我试图编译它(验证状态),但我不会使用下面的查询
alter procedure EXAMPLE_P COMPILE;

有人知道我可以做什么来调用我的程序,(我使用过 PL/SQL 开发人员,但从未遇到过这个问题)

最佳答案

你不能调用你的过程,因为你没有创建它。您没有创建它,因为您没有 1 + 2 的分配目标.你必须声明一个变量来把它放进去。你还有 /在错误的地方。

比较这两者的区别:

SQL> create or replace procedure EXAMPLE_P is
2 begin
3 1+2;
4 end;/
5 /

Warning: Procedure created with compilation errors.

SQL> create or replace procedure EXAMPLE_P is
2 i number; -- Declare a variable
3 begin
4 i := 1 + 2; -- assign something to the variable.
5 end;
6 /

Procedure created.

然后你错误地调用了它。如果您没有参数,则不应包含 () .
SQL> begin
2 example_p;
3 end;
4 /

PL/SQL procedure successfully completed.

SQL>

我尝试在 PL/SQL developer 中创建您的过程并收到以下错误;所以,我有点惊讶你从来没有遇到过问题。

Compilation errors for PROCEDURE ALERT.EXAMPLE_P

Error: PLS-00103: Encountered the symbol "1" when expecting one of the following:

   ( begin case declare exit for goto if loop mod null pragma
raise return select update while with <an identifier>
<a double-quoted delimited-identifier> <a bind variable> <<
continue close current delete fetch lock insert open rollback
savepoint set sql execute commit forall merge pipe purge
The symbol "return" was substituted for "1" to continue. Line: 3 Text: 1 + 2;

关于sql - oracle 11g 编译程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12749438/

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