簡體   English   中英

Oracle SQL 開發人員:PL/SQL:ORA-00903:無效的表名

[英]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_copiesDELETE 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM