Oracle数据库中的VARCHAR



我有一个在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

演示

相关内容

最新更新