【发布时间】:2012-03-05 12:15:09
【问题描述】:
我已经创建了以下表格和类型....
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
/
我需要创建一个.....
一个名为 INIT_ACTOR_QUOTES 的 PL/SQL 过程,没有以下参数:
从 ACTOR 表中读取所有 ACTORID 并将它们插入到 ACTOR_QUOTES 表中每一行的 ACTORID 属性中(这些表具有相同的基数),同时将以下初始值插入到 QUOTES 的第一行中将表嵌套到 ACTOR_QUOTES 表的每一行中;
(Movie_Title, Year, Role, Quote) 分别设置为(' ',NULL ,' ', ' ')
同时在每次 INSERT 之后立即使用 DELETE 从嵌套表中删除属于 ACTOR_QUOTES 表中每个 ACTORID 的每一行中的所有行。
我的代码出现编译错误....
CREATE OR REPLACE PROCEDURE INIT_ACTOR_QUOTES
AS
CURSOR actorID_cursor IS
SELECT actorID FROM Actor;
BEGIN
FOR row IN actorID_cursor LOOP
INSERT actorID INTO ACTOR_QUOTES;
INSERT INTO actor_Quotes_NT VALUES ('', NULL, ' ', '');
DELETE (*) FROM actor_Quotes_NT ('', NULL, ' ', '');
END LOOP;
END INIT_ACTOR_QUOTES ;
/
Warning: Procedure created with compilation errors.
SQL> show errors;
Errors for PROCEDURE INIT_ACTOR_QUOTES:
LINE/COL ERROR
-------- -----------------------------------------------------------------
7/2 PL/SQL: SQL Statement ignored
7/9 PL/SQL: ORA-00925: missing INTO keyword
9/2 PL/SQL: SQL Statement ignored
9/10 PL/SQL: ORA-00928: missing SELECT keyword
SQL>
请帮忙....
【问题讨论】:
-
收到“过程创建时出现编译错误”消息后,您可以输入
SHOW ERRORS;(或仅输入SHO ERR)来查看这些错误。事实上,我所有的 SQL create-procedure 脚本最后都包含SHOW ERRORS;:如果有错误,我当然想看看,如果没有,那么SHOW ERRORS;只会打印“没有错误。 " -
顺便说一下,
'NULL'和NULL不一样。'NULL'是四个字符的字符串;NULL是一个特殊值,大致意思是“未知”或“不确定”。在 Oracle 中(虽然不是在其他 DBMS 中),''与NULL相同。 -
警告:过程创建时出现编译错误。 SQL> 显示错误; PROCEDURE INIT_ACTOR_QUOTES 的错误:LINE/COL ERROR 7/2 PL/SQL:SQL 语句被忽略 7/9 PL/SQL:ORA-00925:缺少 INTO 关键字 9/2 PL/SQL:SQL 语句被忽略 9/10 PL/SQL: ORA-00928: 缺少 SELECT 关键字 SQL>
-
请更新问题以添加该信息。
-
你真的不应该删除你原来的问题来问一个新的问题。 SO 的全部意义在于提供问题的答案。通过删除文本,您删除了我的答案的实用性。如果您有一个新问题,您应该开始一个新线程。除此之外,您更有可能以这种方式获得新问题的答案。如果这个线程中的代码是相关的,你应该链接到它。
标签: sql oracle procedure user-defined-types