0
好き嫌いに基づいて週別ランクを選択する手順をとった。 私のSQLクエリは、以下のようである:oracle sqlで週間ランキングを表示する手順を作成する
create or replace procedure select_rank
is
begin
select count(billboard_user.user_idx) as likes, music.hit
from billboard_user, user_like_music, music
where billboard_user.user_idx = user_like_music.user_idx
and user_like_music.music_idx = music.music_idx
group by music.hit
order by count(billboard_user.user_idx) desc, music.hit desc;
end select_rank;
/
私が手続きを行うことができましたが、Oracleはエラー
に期待されていますPLS-00428を示しています。INTO句このSELECT文
私はこれを試しました:
create or replace procedure select_rank
(v_rank number,
v_title music.title%type,
v_cnt number,
v_release_date music.release_date%type,
v_hit music.hit%type) is
begin
select rank() over (order by count(billboard_user.user_idx) desc) as rank,
music.title, music.release_date, count(billboard_user.user_idx) as likes, music.hit
into v_rank, v_title, v_cnt, v_release_date, v_hit
from billboard_user, user_like_music, music
where billboard_user.user_idx = user_like_music.user_idx
and user_like_music.music_idx = music.music_idx
group by music.title, music.hit, music.release_date
order by count(billboard_user.user_idx) desc, music.hit desc;
DBMS_OUTPUT.PUT_LINE('v_rank: ' || v_rank);
DBMS_OUTPUT.PUT_LINE('v_title: ' || v_title);
DBMS_OUTPUT.PUT_LINE('v_cnt: ' || v_cnt);
DBMS_OUTPUT.PUT_LINE('v_release_date: ' || v_release_date);
DBMS_OUTPUT.PUT_LINE('v_hit: ' || v_hit);
end select_rank;
/
しかし、うまくいきません。どうすれば修正できますか?
これらの変数を追加しましたが、この式のV_RANK式をSELECT/FETCHステートメントのINTOターゲットとして使用することはできません。 – user19283043
面白いです。この回答のコードサンプルには 'v_rank'というものは何もありません。 –