已更新 我一直在努力研究爲什麼我的過程不能工作一段時間。所以任何人都可以幫助我,對不起,我還是很新的SQL。它應該根據課程名稱查找course_number。如果找不到匹配項,則默認課程編號爲* *。然後它將新記錄插入student_course
表中。這裏是數據庫的副本我使用的第1行執行的執行過程中的錯誤過程[已更新]
* 錯誤時顯示https://www.dropbox.com/s/cmqmzggiygxbkth/dissertation_database.txt https://www.dropbox.com/s/hm90jga9zsaawnt/course_procedure.txt
CREATE OR REPLACE PROCEDURE upda_course
(name IN VARCHAR2)
IS
course_id VARCHAR2;
cursor c1 is
SELECT course_id
FROM courses
WHERE name = name;
BEGIN
open c1;
fetch c1 into course_id;
if c1%notfound then
course_id := 9999;
end if;
INSERT INTO course_modules
(course_id, module_id
)
VALUES
(name,
course_id);
commit;
close c1;
EXCEPTION
WHEN OTHERS THEN
raise_application_error(-20001,'An error was encountered - '||SQLCODE||' -ERROR- '||SQLERRM);
END upda_course;
/
SHOW ERRORS;
EXECUTE upda_course('business computing systems');
SHOW ERRORS;
錯誤: ORA-20001:遇到一個錯誤 - -6502·ERROR - ORA-06502:PL/SQL:數字 或錯誤值:字符數轉換錯誤 ORA-06512:在 「INS2014_106.UPDA_COURSE」,第29行 ORA-06512:在第1行
您沒有指定輸入參數。爲輸入參數指定一個值並再次執行 – Incognito
'WHERE name = name;'您的列名與變量名相同?也許你會掩蓋代碼。但是隻是想讓你知道,當有衝突的時候,這是Oracle會提及的專欄!而在你的插入中,你將'NUMBER'插入到'VARCHAR' /'CHAR'字段.. ?? !!或反之亦然..因此,這個錯誤 –
你可以顯示你的表結構? –