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

Ric*_*nop 1 sql oracle plsql ora-06550

我收到此错误:

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:
Run Code Online (Sandbox Code Playgroud)

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

SELECT * FROM books;
Run Code Online (Sandbox Code Playgroud)

要么:

SELECT * FROM book_copies;
Run Code Online (Sandbox Code Playgroud)

而且他们都工作.

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

Dav*_*sta 6

在一个DELETE声明中,至少在Oracle中,您没有列出列,并且FROM是可选的.所以,当你DELETE * ...,它试图解析星号作为表名.请注意,如果计算列,则第10列是星号,这是报告无效表名的位置.

DELETE FROM book_copiesDELETE book_copies.