我想拆分字符串逗号分隔并在 Oracle 12c 中加入另一个 table 上的值

I want to split string comma separated and join the values on another table in Oracle 12c

这是我的 Sql 代码,它工作正常但在 Oracle 中不工作。

开始

Declare @ErrorCodes varchar(max)

if(isnull(@ErrorCodes,'') <> '')
    Begin
        WITH TempTable as
        (
        SELECT * FROM split(@ErrorCodes,',')
        )

        SELECT ErrorDescription 
        FROM TABLE E 
        INNER JOIN TempTable  
        ON ltrim(rtrim(TempTable.data)) = E.ErrorCode
    End

结束

您的代码是 SQL 服务器的。

在 Oracle 中,您将使用分层连接方式进行此类处理。

假设 CSV 字符串是 1,2,3,试试这个

select regexp_substr('1,2,3', '[^,]+', 1, level) as error_code
from dual
connect by level <= regexp_count('1,2,3', ',') + 1

select ERRORDESCRIPTION INTO v_ErrorDesc from TABLE where Errorcode in ( select cast(COLUMN_VALUE as Nvarchar2(4000)) ErrorCode from ( SELECT 列 A 来自 TABLEA 其中 columnID = v_caseid ) , xmltable(('"' || REPLACE(columnA, ',', '","') || '"')));

这对我有用我自己解决了..无论如何谢谢!!