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

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/13722307/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-10 04:42:41  来源:igfitidea点击:

ORA-00900: invalid SQL statement- when run a procedure in oracle 10g

oraclestored-proceduresplsqlideprocedure

提问by kumar

I am using Oracle 10g database and trying to run a procedure using SQL commands.

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

create or replace procedure "exam" is
begin
  DBMS_OUTPUT.PUT_LINE('Test');
end;

Then click on Run button. It shows: "procedure created".

然后点击运行按钮。它显示:“程序已创建”。

When I try to execute it using:

当我尝试使用以下方法执行它时:

execute exam;

then click on Run button, it shows:

然后点击运行按钮,它显示:

ORA-00900: invalid SQL statement

Thanks for your help.

谢谢你的帮助。

回答by Kirill Leontev

Just noticed a detail in your question. You press runbutton. Thus, you must be using an IDE.

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

You cannot use executein IDEs - it is an sql*pluscommand. It mightwork in Oracle SQL Developer though, but I wouldn't use it there anyway;

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

Try

尝试

begin
  exam;
end;

回答by David Aldridge

Lose the double-quotes around the name. They're a bad practice in Oracle.

去掉名字周围的双引号。它们在 Oracle 中是一种不好的做法。

回答by Michael Kremser

See: Syntax error while trying to call an Oracle package using ODBC in C#

请参阅:尝试在 C# 中使用 ODBC 调用 Oracle 包时出现语法错误

You have to put "{" and "}" before the command. Example:

你必须在命令前加上“{”和“}”。例子:

    processListCmd.CommandType = CommandType.StoredProcedure;
    processListCmd.CommandText = "{ call rep_invnr_proclist }";
    processListCmd.ExecuteNonQuery();