Вам необходимо удалить AS в предложении FROM. Oracle позволяет использовать дополнительный AS для псевдонимов имен столбцов, но не для предоставления псевдонимов
SQL> ed
Wrote file afiedt.buf
1 CREATE VIEW my_view AS
2 (
3 SELECT metadata.ID,metadata.Field1,metadata.Field2,metadata.Field3,metadata
.Field4,attribute1.StrValue AS Attr1, attribute2.StrValue AS Attr2
4 FROM metadata,data attribute1,data attribute2
5 WHERE
6 (
7 metadata.Type = 'TYPE1'
8 )
9 AND
10 (
11 metadata.ID = attribute1.ID AND attribute1.name = 'attr1'
12 )
13 AND
14 (
15 metadata.ID = attribute2.ID AND attribute2.name = 'attr2'
16 )
17* )
SQL> /
View created.
В зависимости от используемого вами инструмента, может быть полезно знать, что SQL * Plus точно покажет вам, где происходит синтаксическая ошибка - приведенный ниже фрагмент кода показывает, что он возражает против ключевого слова AS.
SQL> ed
Wrote file afiedt.buf
1 CREATE VIEW my_view AS
2 (
3 SELECT metadata.ID,metadata.Field1,metadata.Field2,metadata.Field3,metadata
.Field4,attribute1.StrValue AS Attr1, attribute2.StrValue AS Attr2
4 FROM metadata,data AS attribute1,data AS attribute2
5 WHERE
6 (
7 metadata.Type = 'TYPE1'
8 )
9 AND
10 (
11 metadata.ID = attribute1.ID AND attribute1.name = 'attr1'
12 )
13 AND
14 (
15 metadata.ID = attribute2.ID AND attribute2.name = 'attr2'
16 )
17* )
SQL> /
FROM metadata,data AS attribute1,data AS attribute2
*
ERROR at line 4:
ORA-00907: missing right parenthesis