Редактирование в PLSQL.
У меня следующая процедура:
SET SERVEROUTPUT ON
CREATE OR REPLACE PROCEDURE StringTest(StringToTest IN varchar2)
AS
result varchar2(100);
BEGIN
result := REGEXP_SUBSTR(StringToTest, '[a-zA-Z0-9]{1,}\/?\s?\w*(\/\d{4})?',1,1);
DBMS_OUTPUT.PUT_LINE('Result is ' || result);
END;
/
Цель этой процедуры - взять строку, сопоставить ее с регулярным выражением, а затем вернуть первое совпадение в строке. Я понимаю, что для этого примера регулярное выражение сложнее, чем нужно, но это потому, что я усек код до его простейшей формы. Фактический код намного сложнее, и поэтому регулярное выражение выглядит более сложным, чем нужно для этого примера.
Когда я вызываю процедуру через блок кода PLSQL, такой как
SET SERVEROUTPUT ON
DECLARE
String1 varchar2(100);
BEGIN
String1 := '(‘Hello’)';
StringTest(String1);
END;
/
Я получаю следующее:
Result is Hello¬
Когда я вызываю процедуру через оператор EXEC, такой как
EXEC StringTest('(‘Hello’)');
Я получаю следующее
Result is Hello
Второй результат - это то, что я ожидаю в обоих случаях. Мой вопрос: почему при вызове той же самой процедуры через блок кода PLSQL добавляется дополнительный символ ¬
к выводу?