我已創建了以下表/ SQL程序...PL單參數
CREATE TABLE Actor
(Actor_ID CHAR(5),
lastName CHAR(24),
firstName CHAR(24),
/
CREATE TABLE Movie
(movieID CHAR(3) ,
title CHAR(36),
year NUMBER,
/
CREATE TABLE Role
(roleID CHAR(5),
roleName CHAR(36),
actorID CHAR(5),
movieID CHAR(3))
/
CREATE TABLE Quote
(quoteID CHAR(4),
quoteCHAR CHAR(255))
/
CREATE TABLE RoleQuote
(roleID CHAR(5),
quoteID CHAR(4))
/
Then i created this schemas....
CREATE TYPE ACTOR_QUOTE_TYPE AS OBJECT (
Movie_Title CHAR(36),
Year NUMBER,
Role CHAR(36),
Quote CHAR(255)
)
/
CREATE TYPE AQ_NT AS TABLE OF ACTOR_QUOTE_TYPE
/
CREATE TABLE ACTOR_QUOTES (
ACTORID CHAR(5),
QUOTES AQ_NT
) NESTED TABLE QUOTES STORE AS ACTOR_QUOTES_NT
/
我需要創建一個參數的過程(actorId來是過程參數)和插入所有報價全部任何ACTORID的電影放入任何ACTORID的ACTOR_QUOTES表中的QUOTES嵌套表的行(多個演員可能有許多電影和許多引號,有些可能沒有引號!)。
我該怎麼做?
感謝
到目前爲止,我想這一點,我不知道它的正確與否。
CREATE OR REPLACE PROCEDURE Populate_Movies_Quote
AS
CURSOR Quote_cursor (ActorID in CHAR) IS
SELECT ActorID, Quote, Movie_Title from Actor_Quotes, AQ_NT where Quotes.ActorID=ActorID;
BEGIN
FOR row IN Quote_cursor
LOOP
INSERT INTO ACTOR_QUOTES (ActorID, quotes) values (row.ActorID, AQ_NT(Actor_Quote_Type));
END LOOP;
END Populate_Movies_Quote ;
/
Show erros
LINE/COL ERROR
-------- -----------------------------------------------------------------
4/1 PL/SQL: SQL Statement ignored
4/55 PL/SQL: ORA-04044: procedure, function, package, or type is not
allowed here
6/1 PL/SQL: Statement ignored
6/10 PLS-00306: wrong number or types of arguments in call to
'QUOTE_CURSOR'
[你到目前爲止嘗試過什麼?](http://mattgemmell.com/2008/12/08/what-have-you-tried)。我也推薦[問]。 – Ben 2012-03-31 13:49:37
如果這是家庭作業,請將其標記爲 – 2012-04-01 07:03:19
或多或少重複http://stackoverflow.com/questions/9946383/pl-sql-procedure-using-cursor-loops-and-single-parameter和http: /stackoverflow.com/questions/9929058/sql-procedure-cursor-loops和http://stackoverflow.com/questions/9928363/pl-sql-cursor-loops如果這是一個任務,你們應該學習搜索或(甚至更好)只是彼此交談。 – 2012-04-01 17:20:07