请原谅我,我班上的其他人问过这个问题,但答案并不完全符合我的需要。这是课程作业,所以我不想用勺子喂答案,但朝正确的方向轻推会有所帮助。我也知道其他班的朋友正在使用这个论坛来协助他们的工作,所以这个答案真的很有用。
这是被问到的问题:
(a) 一个名为 INIT_ACTOR_QUOTES 的 PL/SQL 过程,没有以下参数:
一世。从 ACTOR 表中读取所有 ACTORID,并将它们插入到 ACTOR_QUOTES 表的每一行的 ACTORID 属性中(这些表具有相同的基数),同时将以下初始值插入到 QUOTES 嵌套表的第一行中ACTOR_QUOTES 表的每一行;
(Movie_Title, Year, Role, Quote)
分别设置为(' ',NULL ,' ', ' ')
同时,在每次 INSERT 之后立即使用 DELETE 从嵌套表中删除属于 ACTOR_QUOTES 表中每个 ACTORID 的每一行中的所有行。(注意:这可能看起来很奇怪,但这是必要的,因为嵌套表不能被填充(因为它是原子的 null),除非它被初始化,之后这个初始数据可能会被删除)。
这就是我想出的和得到的回应:
CREATE OR REPLACE PROCEDURE INIT_ACTOR_QUOTES
AS
CURSOR actorID_cursor IS
SELECT actorID FROM Actor;
BEGIN
FOR row IN actorID_cursor LOOP
INSERT INTO actor VALUES (
'00001',
actor_quotes_NT (
quote ('', NULL, ' ', '')
);
DELETE (*) FROM Quotes_NT ('', NULL, ' ', '');
END LOOP;
END INIT_ACTOR_QUOTES ;
/
LINE/COL ERROR
-------- -----------------------------------------------------------------
8/1 PL/SQL: SQL Statement ignored
13/2 PL/SQL: ORA-00917: missing comma
16/1 PL/SQL: SQL Statement ignored
16/9 PL/SQL: ORA-00928: missing SELECT keyword
20/1 PLS-00103: Encountered the symbol "/"
我有点明白我的讲师所要求的原则,但这让我头疼不已。请帮忙。
您需要更多信息吗?