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

Procedura składowana Oracle w problemie z parametrem wyjścia — rozwiązanie — błąd literówki

Niektóre problemy:

  1. VARHAR2 nam literówka i powinna być VARCHAR2 .
    • Możesz zamiast tego określić typy danych, aby odwoływać się do odpowiednich kolumn tabeli, używając table_name.column_name%TYPE .
  2. Procedura niczego nie wyświetla - musisz zmienić jeden z IN parametry do OUT (lub IN OUT parametr).
  3. Twoje zapytanie nie określa nazwy tabeli.
  4. Możesz użyć SELECT ... INTO ... zamiast CURSOR .

Coś takiego:

CREATE OR REPLACE PROCEDURE FIRSTPROC (
  ID1 IN  table_name.id1val%TYPE,
  ID2 OUT table_name.id2val%TYPE
)
AS
BEGIN
  DBMS_OUTPUT.PUT_LINE(ID1);
  SELECT id2val
  INTO   ID2
  FROM   table_name
  WHERE  id1val = ID1;
EXCEPTION
  WHEN NO_DATA_FOUND THEN
    ID2 := 0; -- Or you could use NULL
  WHEN TOO_MANY_ROWS THEN
    ID2 := 0; -- Or you could use NULL
END;
/


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Liczba wierszy w Oracle SQL Select?

  2. Jak zmienić numer (7,2) na varchar w Oracle?

  3. Błąd :ORA-06553:PLS-306:błędna liczba lub typy argumentów w wywołaniu procedury

  4. Standard ANSI SQL dla słowa kluczowego ORACLE MINUS

  5. ORACLE - znajdź konkretny wynik wewnątrz PĘTLI (LUB PODOBNY)