【发布时间】:2021-04-29 16:44:40
【问题描述】:
我在 oracle apex 中有一个应用程序,其中有一个名为 search_result 的部分,它返回此 sql 查询
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
但我需要用 pl/sql 函数体和 我已经用函数创建了包
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;
然后我尝试在pl/sql返回sql查询块中返回这个游标:
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;
但它会引发此错误: ORA-06550:第 12 行,第 11 列:PLS-00382:表达式类型错误
我做错了什么以及我应该如何解决它。
我的数据库和一些截图:
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 - -
【问题讨论】:
标签: oracle plsql oracle-apex