ORA-00900:SQL语句无效-在oracle 10g中运行过程时
我正在使用Oracle 10g数据库,并尝试使用SQL命令运行一个过程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中,这是一个糟
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();