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. SQLは、他の複数の変数を参照するステートメントの場合に基づいて、新しい変数で1,0を返します

    2. 最も頻繁な値のSQLを取得する方法

    3. オラクルは時間のみを挿入します

    4. mysqlで多くのフィールドを呼び出すときに*を使用するのが最適ですか?