Неверный идентификатор для предложения Where PL / SQL - PullRequest
1 голос
/ 12 октября 2019

Попытка выполнить запрос к данным в таблице. Запрос звучит так: «Укажите название альбома, дату выпуска и цену альбома всех альбомов Нила Янга, выпущенных после 1 января 2015 года».

Соответствующая структура таблицы (исключая другие части) выглядит следующим образом:

create or replace type artist_type as object 
(artistName     varchar(50), 
 artistRole     varchar(25))
/ 
create type artist_array_type  
as varray(5) of artist_type
/ 
create or replace type album_type as object 
(albumTitle         varchar(50),
 albumPlaytime      number(3), -- minutes
 albumReleaseDate   date, 
 albumGenre         varchar(15),
 albumPrice         number(9,2),
 albumTracks        number(2),
 albumArtists       artist_array_type,
 albumReviews       review_table_type,
member function discountPrice return number,
member function containsText (pString1 varchar2, pString2 varchar2) return integer)
not instantiable not final 
/

Ниже приведен мой текущий запрос,

select a.albumtitle, a.albumreleasedate, a.albumprice
from albums a 
where a.albumartists.artist_type.artistname = 'Neil Young' 
    and a.albumreleasedate >= '1-Jan-2015'; 

, однако при попытке выполнить его в Oracle SQL Developer я получаю сообщение об ошибке:

ORA-00904: "A". "ALBUMARTISTS". "ARTIST_TYPE". "ARTISTNAME": неверный идентификатор

00000 - "% s: неверный идентификатор"
...