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

Tildel en Select til en variabel i en lagret procedure

Du skal bruge SELECT INTO . Der er heller ingen klammeparenteser i PL/SQL du skal bruge THEN og END IF . Jeg er ikke helt sikker på, hvad du gør med resultatet. Vil du give det tilbage? Så skal du bruge en FUNCTION . Det skulle se sådan ud (utestet):

create or replace
FUNCTION PCD_COMBAT (identifier_perso NUMBER, identifier_advers NUMBER) 
RETURN NUMBER
AS
  ATT_PERSO NUMBER;
  OFF_PERSO NUMBER;
  DEF_ADVERS NUMBER; 
BEGIN     
  SELECT OFFENSE_PERSO 
    INTO OFF_PERSO 
    FROM PERSONNAGE 
   WHERE ID_PERSO = identifier_perso;
  SELECT DEFENSE_ADVERSAIRE 
    INTO DEF_ADVERS 
    FROM PERSONNAGE 
   WHERE ID_ADVERSAIRE = identifier_advers;

  ATT_PERSO := OFF_PERSO - DEF_ADVERS;
  IF ATT_PERSO < 1 THEN 
     ATT_PERSO := 1;
  END IF

  RETURN ATT_PERSO;

END PCD_COMBAT;


  1. MySQL-databasen afbryder forbindelsen efter 8 timer. Hvordan forebygger man det?

  2. Oracle 18c Ny funktion:Online ændring af partitionering

  3. MySQL CSV-import - dato indtastet som 0000-00-00 00:00:00 hvis tidsstemplet har millisekunder?

  4. Store præstationsproblemer med Oracle DataReader i .Net