Oracle SQL Developer:PL/SQL:ORA-00903:无效的表名

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/5873123/
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-18 23:34:17  来源:igfitidea点击:

Oracle SQL Developer: PL/SQL: ORA-00903: invalid table name

sqloracleplsqlora-06550

提问by Richard Knop

I am getting this error:

我收到此错误:

Error starting at line 2 in command:
BEGIN
  DELETE * FROM book_copies;
  DELETE * FROM books;
  /* more code here */
END;
Error report:
ORA-06550: line 2, column 10:
PL/SQL: ORA-00903: invalid table name
ORA-06550: line 2, column 3:
PL/SQL: SQL Statement ignored
ORA-06550: line 3, column 10:
PL/SQL: ORA-00903: invalid table name
ORA-06550: line 3, column 3:
PL/SQL: SQL Statement ignored
06550. 00000 -  "line %s, column %s:\n%s"
*Cause:    Usually a PL/SQL compilation error.
*Action:

Which is ridiculous as both tables exist in my database. I can do:

这很荒谬,因为我的数据库中存在两个表。我可以:

SELECT * FROM books;

Or:

或者:

SELECT * FROM book_copies;

And both of them work.

他们都工作。

Why does Oracle SQL Developer says "invalid table name"?

为什么 Oracle SQL Developer 会说“无效的表名”?

回答by Dave Costa

In a DELETEstatement, at least in Oracle, you don't list columns, and FROMis optional. So when you DELETE * ..., it is trying to parse the asterisk as the table name. Note that if you count the columns, column 10 is the asterisk, which is where the invalid table name is being reported.

DELETE语句中,至少在 Oracle 中,您不列出列,并且FROM是可选的。因此,当您DELETE * ...尝试将星号解析为表名时。请注意,如果计算列数,第 10 列是星号,这是报告无效表名的位置。

Write DELETE FROM book_copiesor DELETE book_copies.

DELETE FROM book_copiesDELETE book_copies

回答by Ekkehard.Horner

But you should

但是你应该

DELETE FROM book_copies;

(no * borrowed from Access)

(没有 * 从 Access 借来的)

回答by shweta

Getting error for

获取错误

drop and alter

删除和改变

same error : invalid table name

同样的错误:无效的表名

but table is there, please tell the solution.

但表在那里,请告诉解决方案。

Query:

询问:

ALTER TABLE [EXCLUDE_BC]
DROP COLUMN [STATUS_BY_SITE] VARCHAR2(60 BYTE), [ALT_STATUS_BY_SITE] VARCHAR2(60 BYTE), [STATUS_BY_CONSOLIDATED] VARCHAR2(60 BYTE),[ALT_STATUS_BY_CONSOLIDATED] VARCHAR2(60 BYTE);

ALTER TABLE [EXCLUDE_BC]
ADD [STATUS_BY_SITE] VARCHAR2(60 BYTE), [ALT_STATUS_BY_SITE] VARCHAR2(60 BYTE), [STATUS_BY_CONSOLIDATED] VARCHAR2(60 BYTE),[ALT_STATUS_BY_CONSOLIDATED] VARCHAR2(60 BYTE);

thanks. regards. Shweta

谢谢。问候。施维塔