1

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"?

4

3 に答える 3

6

DELETE少なくともOracleでは、ステートメントでFROMは列をリストせず、オプションです。したがってDELETE * ...、アスタリスクをテーブル名として解析しようとしています。列を数える場合、列 10 はアスタリスクであり、無効なテーブル名が報告されている場所であることに注意してください。

DELETE FROM book_copiesまたは と書きDELETE book_copiesます。

于 2011-05-03T17:20:30.363 に答える
1

しかし、あなたはすべきです

DELETE FROM book_copies;

(なし ※アクセスより拝借)

于 2011-05-03T17:17:52.060 に答える
0

の取得エラー

落として変える

同じエラー: 無効なテーブル名

テーブルはありますが、解決策を教えてください。

クエリ:

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);

ありがとう。よろしく。シュエタ

于 2014-12-11T06:55:08.700 に答える