sql >> Databasteknik >  >> RDS >> Oracle

Tilldela en Select till en variabel i en lagrad procedur

Du måste använda SELECT INTO . Det finns heller inga klammerparenteser i PL/SQL du måste använda THEN och END IF . Jag är inte helt säker på vad du gör med resultatet. Vill du ge tillbaka den? Då behöver du en FUNCTION . Det borde se ut ungefär så här (otestat):

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. SQL Server Geografi datatyp närmaste punkt på linjen

  2. Hur frågar jag postgres inkrementella uppdateringar sedan en angiven punkt (en tidsstämpel eller ett transaktions-id)?

  3. Oracle vecka beräkningsfråga

  4. Objektmatris byggd från JSON visas inte på min Google-karta