Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Tworzenie pakietu sqlplus

Gdy otrzymasz błędy kompilacji, będziesz chciał zobaczyć, jakie błędy otrzymałeś. W SQL*Plus możesz to zrobić za pomocą polecenia 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

Błędy mówią ci, że kompilator uważa, że ​​słowo kluczowe w wierszu 11, kolumnie 29 jest nazwą kolumny i że nazwy kolumn nie są dozwolone w tym punkcie kodu. Wiersz 11, kolumna 29 to pl_loc identyfikator. Przypuszczalnie nie chciałeś, aby było to odniesienie do nazwy kolumny. Przypuszczalnie chciałeś, aby była to nazwa parametru. Ale Oracle nie rozpoznaje tego identyfikatora jako parametru. Dzieje się tak, ponieważ twój parametr ma nazwę p_loc nie pl_loc (zwróć uwagę na dodatkowy l ).

Jeśli poprawisz nazwy wszystkich trzech parametrów, kod się skompiluje

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. Oracle Konwertuj TIMESTAMP ze strefą czasową na DATE

  2. Przenieś wartości inne niż NULL w górę w obrębie partycji

  3. Koszt zapytania:globalne tabele tymczasowe a kolekcje (wirtualne tablice)

  4. Oracle SQL — usuń częściowy duplikat z ciągu znaków

  5. Zapytanie nazwane, zapytanie natywne lub API kryteriów