I have an application in oracle apex and there is a section which is called search_result and it returns this sql query
select
"TITLE" CARD_TITLE,
"POSTER_PATH" CARD_TEXT,
"PRODUCTION_COMPANY" CARD_SUBTEXT,
apex_string.get_initials("TITLE") CARD_INITIALS,
'https://www.imdb.com/title/'||IMDB_ID CARD_LINK,
null CARD_MODIFIERS,
null CARD_COLOR,
null CARD_ICON,
"GENRE",
"COUNTRY",
"PRODUCTION_COMPANY",
"RUNTIME",
"BUDGET",
"VOTE_AVERAGE",
"TITLE",
"POSTER_PATH"
from "MOVIES"
order by vote_average desc
But I need to rewrite this query with pl/sql function body and I've created package with function
CREATE OR REPLACE PACKAGE PRINTS AS
FUNCTION MOVIES_LIST RETURN SYS_REFCURSOR;
FUNCTION ORDER_VOTE RETURN SYS_REFCURSOR;
END PRINTS;
CREATE OR REPLACE PACKAGE BODY PRINTS AS
FUNCTION ORDER_VOTE
RETURN SYS_REFCURSOR
is
r_movie sys_refcursor;
BEGIN
open r_movie for select
"TITLE" CARD_TITLE,
"POSTER_PATH" CARD_TEXT,
"PRODUCTION_COMPANY" CARD_SUBTEXT,
apex_string.get_initials("TITLE") CARD_INITIALS,
null CARD_MODIFIERS,
null CARD_COLOR,
null CARD_ICON,
"GENRE",
"COUNTRY",
"PRODUCTION_COMPANY",
"RUNTIME",
"BUDGET",
"VOTE_AVERAGE",
"TITLE",
"POSTER_PATH"
from "MOVIES"
order by vote_average desc;
return r_movie;
END ORDER_VOTE;
END PRINTS;
Then I've tried to return this cursor in pl/sql returning sql query block:
declare
movie_cur sys_refcursor;
a_movie movies%rowtype;
begin
movie_cur := PRINTS.ORDER_VOTE; -- call the movie function
loop
fetch movie_cur into a_movie;
exit when movie_cur%notfound;
end loop;
return a_movie;
end;
but it throws this error: ORA-06550: line 12, column 11: PLS-00382: expression is of wrong type
what I did wrong and how should I fix it.
My db and some screenshots:
Column Name Data Type Nullable Default Primary Key
ID NUMBER No "WKSP_DBMSPROJECT1"."ISEQ$$_111377832".nextval 1
TITLE VARCHAR2(255) Yes - -
GENRE VARCHAR2(50) Yes - -
COUNTRY VARCHAR2(50) Yes - -
PRODUCTION_COMPANY VARCHAR2(255) Yes - -
RUNTIME NUMBER Yes - -
RELEASE_DATE DATE Yes - -
OVERVIEW VARCHAR2(4000) Yes - -
TAGLINE VARCHAR2(255) Yes - -
BUDGET NUMBER Yes - -
REVENUE NUMBER Yes - -
POPULARITY NUMBER Yes - -
VOTE_AVERAGE NUMBER Yes - -
VOTE_COUNT NUMBER Yes - -
POSTER_PATH VARCHAR2(255) Yes - -
TMDB_ID NUMBER Yes - -
IMDB_ID VARCHAR2(50) Yes - -