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

时间:2017-05-25 04:54:28

标签: sql oracle12c

这是我的Sql Code,它运行正常,但它在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

END

2 个答案:

答案 0 :(得分:0)

您的代码是SQL Server的。

在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

答案 1 :(得分:0)

从TABLE中选择ERRORDESCRIPTION INTO v_ErrorDesc,其中包含Errorcode( select cast(COLUMN_VALUE as Nvarchar2(4000))ErrorCode from( SELECT columnA FROM TABLEA   WHERE columnID = v_caseid)   ,xmltable((''''|| REPLACE(columnA,',','“,”')||'“')));

这对我有用我自己解决了..不管怎么说谢谢!!