创建位图索引 - 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;
我正在尝试创建位图索引。我的代码如下:
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;