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

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

Ответ нейросети
18 июня 2026 01:48

Short interpretation and issues:

  • CHR(99) is the character 'c'. So CHR(99)||CHR(99)||CHR(99) = 'ccc'. The pipe name would be 'CCC' (Oracle uppercases pipe names).
  • DBMS_PIPE.RECEIVE_MESSAGE expects arguments like: DBMS_PIPE.RECEIVE_MESSAGE(pipename IN VARCHAR2, message OUT VARCHAR2, timeout IN PLS_INTEGER) or similar three-argument form.
  • Your call passes only two arguments, and the second argument is 28.39 (a decimal). The second argument should be a variable to receive the message (not a number), and the timeout should be an integer.
  • As written, this code will not compile/execute correctly.

Correct usage examples:

  • Declaring a variable to hold the received message and using an integer timeout (e.g., 28 seconds): DECLARE v_msg VARCHAR2(4000); BEGIN DBMS_PIPE.RECEIVE_MESSAGE(pipename => 'CCC', message => v_msg, timeout => 28); DBMS_OUTPUT.PUT_LINE('Received: ' || v_msg); END; /

  • If you don’t want to use named notation: DECLARE v_msg VARCHAR2(4000); BEGIN DBMS_PIPE.RECEIVE_MESSAGE('CCC', v_msg, 28); END; /

Notes:

  • Ensure the pipe named CCC exists (CREATE_PIPE) and that a sender is putting messages into it (SEND_MESSAGE) for RECEIVE_MESSAGE to return something before the timeout.
  • The timeout must be an integer number of seconds. A decimal like 28.39 is not valid for the timeout parameter and would cause an error or implicit conversion issue.