首页 > 解决方案 > TSQL 文本 LOB 列查询单独执行时有效,包含在 CTE 中时失败

问题描述

我有以下查询来提取 LOB 字段(包含不超过 25 个字符的 HL_DELETED_RECORD)内容,它本身可以正常工作:

SELECT  REPLACE(REPLACE( CONVERT(VARCHAR(20), HL_DELETED_RECORD), '&amp', '&'), 'ý', ' ') AS FAC_CHANGES,
   HL_REC_ID
FROM SEC_HIST WITH(NOLOCK) 

当我将此查询作为 CTE 的一部分包含在内时,没有错误;LOB 文本数据根本不显示为:

WITH sec_audit AS
        (
        SELECT *...
        ),

hist_logs as
      ( 
SELECT  REPLACE(REPLACE( CONVERT(VARCHAR(20), HL_DELETED_RECORD), '&amp', '&'), 'ý', ' ') AS FAC_CHANGES,
   HL_REC_ID
FROM SEC_HIST WITH(NOLOCK) 
       )

    SELECT * 
    FROM sec_audit
    INNER JOIN hist_logs  WITH(NOLOCK) ON HL_REC_ID = HL_RECORD_ID

LOB 列定义为: [HL_DELETED_RECORD] text NULL

这是一个 HL_DELETED_RECORD 数据样本: 36371ý1025074ýLEC 转换如下: 36371 1025074 LEC

还有人经历过这个吗?谢谢!

标签: tsqltextlob

解决方案


推荐阅读