创建位图索引 - ora-00921

Creating bitmap index- ora-00921

我正在尝试创建位图索引。我的代码如下:

CREATE BITMAP INDEX citizen_idx
ON profiles (contracts.citizenID)
FROM profiles JOIN contracts
USING (citizenID) ;

我收到以下错误:

ORA-00921: unexpected end of SQL command

有人知道怎么回事吗?谢谢!

我没有你的桌子,所以我即兴。基本上,你的语法是错误的。不要使用明确的 JOIN.

SQL> CREATE TABLE profiles (citizenid NUMBER);

Table created.

SQL> CREATE TABLE contracts
  2  (
  3     citizenid   NUMBER PRIMARY KEY,
  4     contractid  NUMBER
  5  );

Table created.

SQL> CREATE BITMAP INDEX idx
  2     ON profiles (p.citizenid)
  3     FROM profiles p, contracts c
  4     WHERE c.citizenid = p.citizenid;

Index created.

SQL>

您不能在 BITMAP Join INDEXES 中使用 ANSI JOIN 语法。在这个link

中提到

您可以使用如下旧语法创建相同的索引

      CREATE BITMAP INDEX citizen_idx
      ON profiles (contracts.citizenID)
      FROM profiles,contracts
      where profiles.citizenID=contracts.citizenID;