1
:印刷引用
CREATE OR REPLACE
PROCEDURE POPULATE_ACTOR_QUOTES (id_actor char)
AS
CURSOR quote_recs IS
SELECT m.title,
m.year,
r.roleName,
q.quotechar
from quote q,
role r,
rolequote rq,
actor a,
movie m
where rq.quoteID = q.quoteID
AND rq.roleID = r.roleID
AND r.actorID = a.actorID
AND r.movieID = m.movieID
AND a.actorID = id_actor;
BEGIN
FOR row IN quote_recs
LOOP
INSERT INTO table(
SELECT quotes
FROM actor_quotes aq
WHERE aq.actorId = id_actor)
VALUES(
ACTOR_QUOTE_TYPE(row.title, row.year, row.roleName, row.quotechar)
);
end loop;
END POPULATE_ACTOR_QUOTES;
/
は(手続きPOPULATE_ACTOR_QUOTESを変更することで)PRINT_ACTOR_QUOTESと呼ばれるPL/SQLプロシージャを作成し、単一のパラメータを持つ:に対応し、姓と名の属性を出力します
CREATE OR REPLACE PROCEDURE PRINT_ACTOR_QUOTES (id_actor char)
AS
CURSOR quote_recs IS
SELECT a.firstName,a.lastName, m.title, m.year, r.roleName ,q.quotechar from quote q, role r,
rolequote rq, actor a, movie m
where
rq.quoteID = q.quoteID
AND
rq.roleID = r.roleID
AND
r.actorID = a.actorID
AND
r.movieID = m.movieID
AND
a.actorID = id_actor;
BEGIN
FOR row IN quote_recs
LOOP
DBMS_OUTPUT.PUT_LINE(row.firstName || ' ' || row.lastName);
END LOOP;
END PRINT_ACTOR_QUOTES;
/
を:だけでなく、アクターID(アクターIDは、プロシージャのパラメータである)ACTORテーブルから、ネストされたQUOTESテーブルからすべての引用情報をプリントアウト
は、これは私が作成したものです0
出力
SQL> EXECUTE PRINT_ACTOR_QUOTES ('00070')
Dustin Hoffman
のような出力を作成する必要があります:私は最初の名前と2番目の名前を持っている
ジェフ・ゴールドブラム
|Title | Year | Role | Quote |
----------------------------------------------------------------------------------------------
|THE FLY |1986 |SETH BRUNDLE | “I’m free and you don’t like it’’ |
|INDEPENDENCE DAY| 1996 | DAVID LEVINSON | “I’ve given it a virus” |
を - ネストされたからの情報を必要としますクォートテーブル
ヘルプが必要です!
私は、ネストされたquotes-から必要な情報が表示されます、次の選択クエリがちょうどに追加する必要があります持っている - PROCEDURE
SELECT REC.*
FROM ACTOR_QUOTES A,TABLE(A.QUOTES) REC
WHERE ACTORID = ('00070')
問題は明確ではありません。このクエリ結果をループするとどうなりますか? –
私は姓と名が入った出力を作成しましたが、DBMS_OUTPUT.PUT_LINE(row.firstName || '|| row.lastName)の下にテーブルを追加する際に問題があります。タイトル、年、役割、見積もりを表示する –