【发布时间】:2018-11-03 19:05:51
【问题描述】:
我在 Oracle 中创建了下面提到的过程。它编译但给出警告说“执行完成并发出警告”
create or replace
PROCEDURE check_upc
(
upc_id1 IN VARCHAR,
upc_id2 IN VARCHAR,
upc_id3 IN VARCHAR
)
IS
BEGIN
insert into testing2 SELECT upc_id1,upc_id2 from dual;
END;
但是当我将 SQL 语句更改为
insert into testing2 SELECT upc_id1,upc_id2,upc_id3 from dual;
编译时没有任何警告。
基本上,我应该为 10 种 UPC 组合(此过程中的参数)运行一个长代码(约 100 行),为此我将用我的实际代码替换上述 SQL 代码。但是,这个基本的插入语句失败了。
提前致谢。
【问题讨论】:
-
您可以查询
user_errors视图以查看实际的编译错误是什么。一些客户端也有一个show errors命令,它只是为你做的。 -
请包括您正在使用的工具、表
testing2的定义以及警告的全文。当我使用 2 列testing2表对其进行测试时,第一个版本已编译,但 PL/SQL Developer 警告我提示:参数“upc_id3”已声明但从未在“check_upc”中使用。 (虽然这是 PL/SQL Developer 的一个特性,而不是 PL/SQL 编译器消息。您在使用 PL/SQL Developer 吗?)将其更改为无效的 3 列插入失败,使用 ORA-00913 编译:也许多值.
标签: sql oracle stored-procedures compiler-errors procedure