我有一个在SQL Server中运行的查询:
SELECT
COUNT(T.Texte)
FROM
(SELECT
CONVERT(varchar(8000), CONVERT(binary(8000), USER_DATA)) AS Texte
FROM
O_USER_DATA ) T
WHERE
T.Texte LIKE '%test123%'
在Oracle中,它不进行编译。我得到一个例外:
缺少表达式
如何修改我的查询,使其在Oracle数据库中运行?
您可以使用UTL_RAW.CAST_TO_VARCHAR2
函数,因为您在user_data
列中存储的内容可以存储在Oracle的BLOB
类型列中,并且该函数可能用于将内容转换为VARCHAR2
类型:
WITH t AS
(
SELECT UTL_RAW.CAST_TO_VARCHAR2(user_data) AS Texte
FROM O_USER_DATA
)
SELECT COUNT(t.Texte)
FROM t
演示