Я делаю собеседование по PL / SQL, и я действительно застрял.Может ли кто-нибудь помочь?
Создать хранимую процедуру для возврата подстрок из значения входной строки.Входной параметр должен быть разделителем подстроки.
Описание задачи
Хранимая процедура должна иметь входные параметры:
• STRING
• DELIMITER //any symbol
• STRING_NUMBER //number of substring to be returned
Input example: STRING => ‘one,two,three’,
DELIMITER => ‘e’,
STRING_NUMBER => null
Output shall be: ‘on’
‘,two,thr’
‘’
‘’
If STRING_NUMBER => 2, output shall be: ‘,two,thr’
РЕДАКТИРОВАТЬ:
Сначала я пытаюсь обрезать строку с помощью функции TRIM, но это не работает.Почему?
CREATE OR REPLACE PROCEDURE substring
(STRNG IN VARCHAR2,DELIMITER IN VARCHAR2)
IS
instring VARCHAR2(100);
BEGIN
instring:= TRIM(DELIMITER FROM STRNG);
DBMS_OUTPUT.PUT_LINE(instring);
END;
set serveroutput on
BEGIN
substring('marc','a');
END;
РЕДАКТИРОВАТЬ 2:
Это делает часть на работе:
CREATE OR REPLACE PROCEDURE substring
(STRNG IN VARCHAR2,DELIMITER IN VARCHAR2)
IS
instring VARCHAR2(100);
BEGIN
instring:= REPLACE(STRNG,DELIMITER);
DBMS_OUTPUT.PUT_LINE(instring);
END;
set serveroutput on
BEGIN
substring('marc','a');
END;