这是我的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
答案 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,',','“,”')||'“')));
这对我有用我自己解决了..不管怎么说谢谢!!