Oracle
 sql >> база данни >  >> RDS >> Oracle

Създаване на пакет sqlplus

Когато получите грешки при компилиране, ще искате да видите какви грешки сте получили. В SQL*Plus можете да направите това с помощта на командата 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

Грешките ви казват, че компилаторът смята, че ключовата дума в ред 11, колона 29 е име на колона и че имената на колони не са разрешени в този момент във вашия код. Ред 11, колона 29 е pl_loc идентификатор. Предполага се, че не сте възнамерявали това да бъде препратка към име на колона. Предполага се, че сте възнамерявали това да бъде името на параметър. Но Oracle не разпознава този идентификатор като параметър. Това е така, защото вашият параметър се нарича p_loc не pl_loc (обърнете внимание на допълнителния l ).

Ако коригирате името и на трите параметъра, кодът се компилира

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. Условна SUM на Oracle

  2. Какво означава изберете count(1) от table_name във всяка база данни?

  3. Заявка със заместващ знак и точка не съответства на данни с индекс на Oracle Text

  4. Как да създадете календарна таблица в Oracle

  5. Oracle DELETE sql с JOIN не работи