請幫我一下這個存儲過程的語法嗎?這是在oracle的SQL開發人員中完成的。PL/SQL存儲過程
存儲過程的目的是允許CALL函數中插入新的記錄到類表(其上創建使用以下語法):
CREATE TABLE class
(
class_number NUMBER(8),
teacher_name VARCHAR2(50),
class_name VARCHAR2(50) NOT NULL,
start_date DATE,
end_date DATE,
class_category VARCHAR2(20),
topic VARCHAR2(20),
teacher_credential VARCHAR2(40),
CONSTRAINT pk_class PRIMARY KEY (class_number,teacher_name,class_name,start_date)
);
隨着存儲的過程和順序如下編碼,應該創建一個新類,如果結束日期在開始日期之前,那麼結束日期應該是默認開始日期+兩週。
CREATE SEQUENCE class_number_seq;
CREATE OR REPLACE PROCEDURE insert_class
(
Teacher_name_param class.teacher_name%TYPE,
class_name_param class.class_name%type,
start_date_param class.start_date%TYPE ,
end_date_param class.end_date%TYPE,
class_category_param class.class_category%TYPE,
topic_param class.topic%TYPE,
end_date_param class.end_date%TYPE
)
AS
class_number_var class.class_number%TYPE;
end_date_var class.end_number%TYPE;
BEGIN
SELECT class_number_seq.NEXTVAL INTO class_number_var FROM dual;
IF end_date_param < start_date_param OR end_date_param IS NULL THEN
end_date_param := start_date_param + 14;
ELSE
end_date_var := end_date_param;
END IF;
INSERT INTO class
VALUES(class_number_var, teacher_name_param, class_name_param, start_date_param, end_date_param, class_category_param, topic_param);
END;
的錯誤我得到是:
PL/SQL complilation單元分析終止:在 RECORD,TABLE或列出的參數重複場是不允許的。
我不確定我的邏輯是否有什麼問題 - 或者重複字段是什麼地方。
請幫忙!