[英]java.sql.SQLSyntaxErrorException: ORA-00903: invalid table name
[英]Oracle SQL Developer: PL/SQL: ORA-00903: invalid table name
我收到此错误:
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:
这很荒谬,因为这两个表都存在于我的数据库中。 我可以:
SELECT * FROM books;
或者:
SELECT * FROM book_copies;
他们都工作。
为什么 Oracle SQL 开发人员说“无效的表名”?
在DELETE
语句中,至少在 Oracle 中,您不列出列,并且FROM
是可选的。 因此,当您DELETE *...
时,它会尝试将星号解析为表名。 请注意,如果计算列,第 10 列是星号,这是报告无效表名的位置。
写DELETE FROM book_copies
或DELETE book_copies
。
但是你应该
DELETE FROM book_copies;
(没有 * 从 Access 借来的)
获取错误
丢弃和改变
同样的错误:无效的表名
但是桌子在那里,请告诉解决方案。
询问:
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);
谢谢。 问候。 什维塔
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.