Hello how are you? Could you help me convert this function from sql server to oracle. i'm still new to oracle and I need the function to separate a url by backslah Thanks a lot
create FUNCTION [dbo].[fn_split_string_to_column] (
    @string NVARCHAR(MAX),
    @delimiter CHAR(1)
    )
RETURNS @out_put TABLE (
    [column_id] INT IDENTITY(1, 1) NOT NULL,
    [value] NVARCHAR(MAX)
    )
AS
BEGIN
    DECLARE @value NVARCHAR(MAX),
        @pos INT = 0,
        @len INT = 0
    SET @string = CASE 
            WHEN RIGHT(@string, 1) != @delimiter
                THEN @string + @delimiter
            ELSE @string
            END
    WHILE CHARINDEX(@delimiter, @string, @pos + 1) > 0
    BEGIN
        SET @len = CHARINDEX(@delimiter, @string, @pos + 1) - @pos
        SET @value = SUBSTRING(@string, @pos, @len)
        INSERT INTO @out_put ([value])
        SELECT LTRIM(RTRIM(@value)) AS [column]
        SET @pos = CHARINDEX(@delimiter, @string, @pos + @len) + 1
    END
    RETURN
END
I tried to convert the function in this way, but I can't get it to compile and it gives me errors that I don't understand how to solve
I have the error in this part RETURN out_put table(
CREATE OR REPLACE FUNCTION fn_split_string_to_column (
    p_string VARCHAR2,
    p_delimiter VARCHAR2
    )
RETURN  out_put table(
    column_id
    End; INT ROWNUM1, 1) NOT NULL,
    valores VARCHAR(2000)
    )
AS
BEGIN
    v_value VARCHAR2(2000);
        v_pos NUMBER(10) := 0;
        v_len NUMBER(10) := 0
    v_string := CASE 
            WHEN SUBSTR(string, GREATEST(-LENGTH(string), -1)) != delimiter
                THEN string + delimiter
            ELSE string
            END
    WHILE INSTR(string, delimiter, v_pos + 1) > 0
    LOOP
        v_len := INSTR(string, delimiter, v_pos + 1) - v_pos
        v_value := SUBSTR(string, v_pos, v_len)
      
        INSERT INTO out_put (valores)
        SELECT LTRIM(RTRIM(v_value)) AS columna FROM dual;
        v_pos := INSTR(string, delimiter, v_pos + v_len) + 1
    END LOOP
    RETURN
END