首页 > 解决方案 > 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 数据库中运行?

标签: sqloracle

解决方案


您可以使用UTL_RAW.CAST_TO_VARCHAR2函数,因为您存储在user_datacolumn 中的内容可以存储在BLOBOracle 的 type 列中,并且可以使用该函数将内容转换为VARCHAR2type :

WITH t AS
(
 SELECT UTL_RAW.CAST_TO_VARCHAR2(user_data) AS Texte 
   FROM O_USER_DATA 
) 
SELECT COUNT(t.Texte) 
  FROM t

Demo


推荐阅读