简体   繁体   English

Oracle SQL 开发人员:PL/SQL:ORA-00903:无效的表名

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

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 开发人员说“无效的表名”?

In a DELETE statement, at least in Oracle, you don't list columns, and FROM is optional.DELETE语句中,至少在 Oracle 中,您不列出列,并且FROM是可选的。 So when you DELETE *... , it is trying to parse the asterisk as the table name.因此,当您DELETE *...时,它会尝试将星号解析为表名。 Note that if you count the columns, column 10 is the asterisk, which is where the invalid table name is being reported.请注意,如果计算列,第 10 列是星号,这是报告无效表名的位置。

Write DELETE FROM book_copies or DELETE book_copies .DELETE FROM book_copiesDELETE book_copies

But you should但是你应该

DELETE FROM book_copies;

(no * borrowed from Access) (没有 * 从 Access 借来的)

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什维塔

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM