sql >> Database >  >> RDS >> Oracle

Oracle Stored Procedure inout parameter issue - Heb de oplossing - Typfout

Enkele problemen:

  1. VARHAR2 ons een typefout en moet VARCHAR2 . zijn .
    • U kunt in plaats daarvan de datatypes specificeren om te verwijzen naar de corresponderende tabelkolommen met behulp van table_name.column_name%TYPE .
  2. De procedure levert niets op - u moet een van de IN . wijzigen parameters naar een OUT (of een IN OUT parameter).
  3. Uw zoekopdracht specificeert geen tabelnaam.
  4. U kunt SELECT ... INTO ... . gebruiken in plaats van een CURSOR .

Zoiets als dit:

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. Hoe print je het resultaat van een PostgreSQL-query in CSV- of TSV-indeling vanaf de opdrachtregel?

  2. Oracle Random Number Generator opgeslagen procedure zonder gebruik te maken van DBMS_RANDOM

  3. Is het kopiëren van de map /var/lib/mysql een goed alternatief voor mysqldump?

  4. Hoe gebruik ik RETURNING met ON CONFLICT in PostgreSQL?