Выражение '<expression>' не может использоваться в качестве цели назначения - PullRequest
0 голосов
/ 21 сентября 2018

В этой процедуре я получаю сообщение об ошибке для функций COALESCE:

[Ошибка] PLS-00363 (1091: 30): PLS-00363: выражение '' нельзя использовать в качестве назначенияtarget.

Какие параметры я должен объявить как out или in out? ... Я пробовал o_max_bet, o_min_bet, o_max_win, но ошибка та же ...

Ниже приводится вся процедура:

   PROCEDURE open_session_3w (
      i_player_id              NUMBER,
      old_session_id           NUMBER,
      i_ip_address             VARCHAR2,
      i_machine_number         VARCHAR2,
      o_last_bet         OUT   NUMBER,
      o_min_bet         in out   NUMBER,
      o_max_bet          in out  NUMBER,
      o_max_win         in out  NUMBER,
      o_credits          OUT   NUMBER,
      o_session_id       OUT   NUMBER,
      o_state            OUT   VARCHAR2
   )
   IS
      o_percentage       NUMBER;   
      o_pot              NUMBER;                           
      pom                weak_cur;
      p_active_session   NUMBER;
      p_parent           number;
      v_max_win           number;
      v_min_bet           number;
      v_max_bet           number;
   BEGIN
     select parent_id into p_parent from casino_users where party_id = i_player_id;
      check_pl_sess_3w (i_player_id, old_session_id);
      o_session_id :=

     player.open_new_session (i_player_id, i_ip_address,i_machine_number,'GAME SESSION');

 select MAX( CASE WHEN gp.name = 'MAX_WIN' THEN VALUE END ),
           MAX( CASE WHEN gp.name = 'MAX_BET' THEN VALUE END ),
           MAX( CASE WHEN gp.name = 'MIN_BET' THEN VALUE END )
    INTO v_max_win,v_max_bet,v_min_bet
          FROM   game_definition_aff gda,
         GAME_PARAMETAR gp,
         game_aff ga,
         game_name gn    
         WHERE   i_player_id = ga.aff_id 
          AND   ga.id = gda.game_aff_id
          AND   gp.id = gda.game_parametar_id
          AND   15 = ga.game_name_id
          AND   gn.game_name_id = ga.game_name_id
          and gp.name in ( 'MIN_BET','MAX_BET','MAX_WIN') ;

      player.get_percentage (i_player_id,
                             o_session_id,
                             royal_tri_win,
                             o_percentage,
                             COALESCE(v_min_bet,o_min_bet),
                             COALESCE(v_max_bet,o_max_bet),
                             COALESCE(v_max_win,o_max_win),
                             o_pot
                            );
    .
    .
    .

end open_session_3w ;   


PROCEDURE get_percentage (i_player_id NUMBER, i_session_id NUMBER, i_game_id NUMBER, o_percentage OUT NUMBER, o_min_bet OUT NUMBER, o_max_bet OUT NUMBER, o_max_win OUT NUMBER, o_pot OUT NUMBER)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...