Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Tetapkan Pilih ke variabel dalam prosedur tersimpan

Anda perlu menggunakan SELECT INTO . Juga tidak ada kurung kurawal di PL/SQL anda perlu menggunakan THEN dan END IF . Saya tidak yakin apa yang Anda lakukan dengan hasilnya. Apakah Anda ingin mengembalikannya? Maka Anda memerlukan FUNCTION . Seharusnya terlihat seperti ini (belum diuji):

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. tanggal/waktu Konversi antara zona waktu yang berbeda

  2. File dump inti dan menambahkan kode debug dalam aplikasi yang dapat dieksekusi untuk Oracle Apps

  3. Dapatkan nama prosedur atau fungsi pemanggilan di Oracle PL/SQL

  4. Oracle INSERT menjadi dua tabel dalam satu query

  5. Mengapa pemicu ini gagal? Dikatakan pengidentifikasi tidak valid