Oracle
 sql >> база данни >  >> RDS >> Oracle

Присвояване на Select на променлива в съхранена процедура

Трябва да използвате SELECT INTO . Освен това в PL/SQL няма скоби трябва да използвате THEN и END IF . Не съм съвсем сигурен какво правите с резултата. Искаш ли да го върнеш? Тогава имате нужда от FUNCTION . Трябва да изглежда нещо подобно (нетествано):

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. UUID максимална дължина на знака

  2. Използване на подзаявка в изявление за проверка в Oracle

  3. АКТУАЛИЗИРАНЕ на INSERT дублиран първичен ключ в Oracle?

  4. Как да промените приоритета за едновременна програма

  5. Какво представляват Oracle Joins (Sql Joins)?