sql >> Databáze >  >> RDS >> Oracle

Problém s parametrem Oracle Stored Procedure – Mám řešení – Chyba typu překlep

Některé problémy:

  1. VARHAR2 máme překlep a mělo by být VARCHAR2 .
    • Místo toho můžete zadat datové typy, které budou odkazovat na odpovídající sloupce tabulky, pomocí table_name.column_name%TYPE .
  2. Procedura nevypisuje nic – musíte změnit jeden z IN parametry na OUT (nebo IN OUT parametr).
  3. Váš dotaz neuvádí název tabulky.
  4. Můžete použít SELECT ... INTO ... spíše než CURSOR .

Něco jako toto:

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. Jak zabránit mySQL v resetování hodnoty automatického přírůstku?

  2. Chyba syntaxe MYSQL – funkce Codeigniter pro výpočet nákladů

  3. Přizpůsobení klávesových zkratek v MySql Workbench

  4. Dynamický aktualizační příkaz s proměnnými názvy sloupců