ORA-00900:SQL语句无效-在oracle 10g中运行过程时

ORA-00900:SQL语句无效-在oracle 10g中运行过程时,oracle,stored-procedures,plsql,ide,procedure,Oracle,Stored Procedures,Plsql,Ide,Procedure,我正在使用Oracle 10g数据库,并尝试使用SQL命令运行一个过程 create or replace procedure "exam" is begin DBMS_OUTPUT.PUT_LINE('Test'); end; 然后点击Run按钮。它显示:“创建过程” 当我尝试使用以下命令执行时: execute exam; 然后单击运行按钮,它显示: ORA-00900: invalid SQL statement 谢谢您的帮助。请删除名称周围的双引号。在Oracle中,这是一个糟

我正在使用Oracle 10g数据库,并尝试使用SQL命令运行一个过程

create or replace procedure "exam" is
begin
  DBMS_OUTPUT.PUT_LINE('Test');
end;
然后点击Run按钮。它显示:“创建过程”

当我尝试使用以下命令执行时:

execute exam;
然后单击运行按钮,它显示:

ORA-00900: invalid SQL statement

谢谢您的帮助。

请删除名称周围的双引号。在Oracle中,这是一个糟糕的做法。

刚刚注意到您问题中的一个细节。按
run
按钮。因此,您必须使用IDE

您不能在IDE中使用
execute
——这是一个
sql*plus
命令。虽然它可能在Oracle SQL Developer中工作,但无论如何我不会在那里使用它

试一试

见:

您必须在命令前面加上“{”和“}”。 例如:


使用时:创建或替换过程检查是开始DBMS_输出;结束;同样的错误也来了。一定是你在使用任何工具时执行它的方式。它在SQL*Plus中工作吗?如果不是,您可能会将其作为SQL而不是过程调用来执行。这应该是一个注释,我认为它不提供解决方案如果您引用过程名称,那么您也应该引用过程调用。如果没有,请不要在两处都引用。请尝试创建或替换考试
执行检查(无引号)这个问题与C#@行无关。你完全正确!可能是因为打开了太多的浏览器标签,在回答问题时选择了错误的标签。实际上,这可能是正确的答案。正如@kirill leontev所指出的,@kumar似乎没有使用SQL*Plus,使用
{call…}
而不是
exec…
应该会更好。
begin
  exam;
end;
    processListCmd.CommandType = CommandType.StoredProcedure;
    processListCmd.CommandText = "{ call rep_invnr_proclist }";
    processListCmd.ExecuteNonQuery();