我收到警告:创建的过程存在编译错误

Posted

技术标签:

【中文标题】我收到警告:创建的过程存在编译错误【英文标题】:Im getting an Warning: Procedure created with compilation errors 【发布时间】:2013-06-13 13:58:22 【问题描述】:

我是pl/sql的初学者,正在学习。

这是我的桌子。

select * from s;

   SLNO ENAME                       SAL
------ -------------------- ----------
     1 Shiv                       8000
     2 Pankaj                     9000
     3 Prasath                   10000

这是我的程序:

set serveroutput on
create or replace procedure p1(n number)
is wname varchar(20);
begin
select ename into wname from s where eid=n;
dbms_output.put_line('------');
dbms_output.put_line('employee name:='||wname);
dbms_output.put_line('------');
end;

我收到警告:

程序创建时出现编译错误。

如果我执行上述查询。任何人都可以请建议我要去哪里错了..

【问题讨论】:

它说编译错误是什么?如果您在创建过程后尝试执行该过程会发生什么? 在不知道编译错误细节的情况下很难帮你。一个(可能不相关的)问题:您应该使用varchar2 而不是varchar:***.com/questions/1171196/… ...或者如果您想做一些真正“酷”的事情,请将wname varchar(20); 替换为wname s.ename%type; 以确保@ 987654329@ 将始终是您的列的任何类型。 显示警告和错误,如下所述:***.com/questions/17013487/… 这是一个无聊的语法错误问题,OP 没有表现出要求提供更多信息的倾向。所以,投票结束。 【参考方案1】:

您的表 S 上没有名为 EID 的列。

【讨论】:

【参考方案2】:

您可以使用以下命令。

show errors procedure procedure_name;

获取错误列表并检查。

【讨论】:

【参考方案3】:

输入参数类型。 给出类似 创建或替换过程 p1(n IN s.eid%TYPE)

的过程

它会起作用的。

【讨论】:

【参考方案4】:

我认为您的程序中有错字, 试试

SET SETVEROUTPUT ON

全部大写。

【讨论】:

它对我有用。即使我不关心案例,但当案例是资本时,它对我有用。这同样适用于创建触发器。(尝试、测试和成功)干杯

以上是关于我收到警告:创建的过程存在编译错误的主要内容,如果未能解决你的问题,请参考以下文章

编译过程时出现oracle错误

让 oracle 函数知道数据是不是为素数。收到警告:创建时出现编译错误的函数

警告:创建的过程带有编译错误

警告:创建的过程带有编译错误

警告:使用编译错误创建触发器?

如何使警告在视觉工作室中持续存在