Создание индекса растрового изображения- ora-00921 - PullRequest
0 голосов
/ 07 мая 2020

Я пытаюсь создать индекс растрового изображения. Мой код следующий:

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

И я получаю следующую ошибку:

ORA-00921: неожиданный конец SQL команды

Кто-нибудь знает, что случилось? Спасибо!

Ответы [ 2 ]

1 голос
/ 07 мая 2020

У меня нет ваших таблиц, поэтому я импровизировал . По сути, ваш синтаксис был неправильным. Не используйте явные 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>
0 голосов
/ 07 мая 2020

Вы не можете использовать синтаксис ANSI JOIN в BITMAP Join INDEXES. Он упоминается в этой ссылке

Тот же индекс, который вы можете создать, используя старый синтаксис, как показано ниже

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