Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №3622821
А
Аноним
18 июня 2026 10:51 · публичный вопрос
А
Аноним

555*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15.758)

Ответ нейросети
18 июня 2026 10:51
  • CHR(99) is the character 'c' (ASCII 99). So CHR(99)||CHR(99)||CHR(99) evaluates to 'ccc'.

  • The call DBMS_PIPE.RECEIVE_MESSAGE(...) is Oracle PL/SQL for receiving a message from a pipe. However, as written, the code is problematic:

    • The first parameter to RECEIVE_MESSAGE is not a literal; it must be a variable that will receive the incoming message (an IN OUT or OUT parameter). You cannot pass the string literal 'ccc' directly.
    • The timeout argument is typically an integer (seconds). A value like 15.758 is not an integer; depending on the exact signature and Oracle version, this could cause a type error or be truncated to an integer.
  • In short, the exact expression 555*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15.758) is not valid PL/SQL as written.

  • If you want to receive a message, you should use a variable for the message and pass an integer timeout, e.g.:

    declare v_msg varchar2(4000); v_status integer; begin v_msg := null; dbms_pipe.receive_message(v_msg, v_status, 15); -- timeout as integer seconds dbms_output.put_line('Message: '||nvl(v_msg,'')||' Status: '||v_status); end;

    Here:

    • v_msg will contain the received message (if any) when the call returns.
    • The timeout is 15 seconds (an integer).

If you can share the exact signature you’re targeting for RECEIVE_MESSAGE in your environment (and the intended pipe name, if applicable), I can tailor the correction precisely.