Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Tạo gói sqlplus

Khi gặp lỗi biên dịch, bạn sẽ muốn xem mình đã nhận được lỗi nào. Trong SQL * Plus, bạn có thể làm điều đó bằng cách sử dụng lệnh 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

Các lỗi cho bạn biết rằng trình biên dịch nghĩ rằng từ khóa ở dòng 11, cột 29 là tên cột và tên cột đó không được phép tại thời điểm đó trong mã của bạn. Dòng 11 cột 29 là pl_loc định danh. Có lẽ, bạn không có ý định đó là tham chiếu đến tên cột. Có lẽ, bạn dự định đó là tên của một tham số. Nhưng Oracle không nhận dạng đó là tham số. Điều này là do tham số của bạn được đặt tên là p_loc không phải pl_loc (lưu ý thêm l ).

Nếu bạn sửa tên của cả ba tham số, mã sẽ biên dịch

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để tối ưu hóa truy vấn với hơn 10 lần tham gia?

  2. Làm thế nào để sử dụng Swing Timers để đưa ra tỷ lệ cập nhật tổng thể?

  3. Cách tách chuỗi csv tốt nhất trong oracle 9i

  4. Cột không được phép ở đây Oracle SQL trên nhiều cột

  5. Các câu lệnh DDL có luôn cung cấp cho bạn một cam kết ngầm hay bạn có thể nhận được một lần khôi phục ngầm không?