![](/img/trans.png)
[英]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.