sql >> Database teknologi >  >> RDS >> Oracle

Oracle Stored Procedure inout parameter problem - Fik løsningen - Skrivefejl

Nogle problemer:

  1. VARHAR2 os en tastefejl og bør være VARCHAR2 .
    • Du kan i stedet angive datatyperne for at referere til de tilsvarende tabelkolonner ved hjælp af tabelnavn.kolonne_navn%TYPE .
  2. Proceduren udsender ikke noget - du skal ændre en af ​​IN parametre til en OUT (eller en IND UD parameter).
  3. Din forespørgsel angiver ikke et tabelnavn.
  4. Du kan bruge SELECT ... INTO ... i stedet for en CURSOR .

Noget som dette:

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. Hvor logges SQL Server-forbindelsesforsøg?

  2. Oracle SQL:Sådan læser og øger du et felt

  3. TypeORM underforespørgsler

  4. Hvordan overfører man XML fra C# til en lagret procedure i SQL Server 2008?