Saat Anda mendapatkan kesalahan kompilasi, Anda akan ingin melihat kesalahan apa yang Anda terima. Di SQL*Plus, Anda dapat melakukannya dengan menggunakan perintah show errors
SQL> create or replace package body fpf
2 as
3 procedure insert_rows
4 (p_deptno IN dept.deptno%TYPE,
5 p_dname IN dept.dname%TYPE,
6 p_loc IN dept.loc%TYPE)
7 as
8 BEGIN
9 INSERT INTO dept
10 (deptno,dname,loc)
11 values ( pl_deptno,pl_dname,pl_loc);
12 end insert_rows;
13 end fpf;
14 /
Warning: Package Body created with compilation errors.
SQL> sho err
Errors for PACKAGE BODY FPF:
LINE/COL ERROR
-------- -----------------------------------------------------------------
9/1 PL/SQL: SQL Statement ignored
11/29 PL/SQL: ORA-00984: column not allowed here
Kesalahan memberi tahu Anda bahwa kompiler berpikir bahwa kata kunci pada baris 11, kolom 29 adalah nama kolom dan bahwa nama kolom tidak diizinkan pada titik itu dalam kode Anda. Baris 11 kolom 29 adalah pl_loc
pengenal. Agaknya, Anda tidak bermaksud itu menjadi referensi ke nama kolom. Agaknya, Anda bermaksud itu menjadi nama parameter. Tetapi Oracle tidak mengenali pengidentifikasi itu sebagai parameter. Ini karena parameter Anda bernama p_loc
bukan pl_loc
(perhatikan tambahan l
).
Jika Anda mengoreksi nama ketiga parameter, kode akan dikompilasi
Wrote file afiedt.buf
1 create or replace package body fpf
2 as
3 procedure insert_rows
4 (p_deptno IN dept.deptno%TYPE,
5 p_dname IN dept.dname%TYPE,
6 p_loc IN dept.loc%TYPE)
7 as
8 BEGIN
9 INSERT INTO dept
10 (deptno,dname,loc)
11 values ( p_deptno,p_dname,p_loc);
12 end insert_rows;
13* end fpf;
SQL> /
Package body created.