【问题标题】:Remove BEL "" and NAK "" ASCII characters from a SQL Server string从 SQL Server 字符串中删除 BEL "" 和 NAK "" ASCII 字符
【发布时间】:2020-03-16 07:23:19
【问题描述】:

我们使用的是 SQL 2016

我们有一个流程,我们从一个系统导出数据数据并将其导入另一个系统。

我在使用 BEL 和 NAK ASCII 字符时遇到了一些问题,我希望将它们从字符串中删除。

初始文本存储在 ntext 列中。我必须将该列转换为 NVARCHAR 才能看到字符。我不想删除任何字母数字字符,只是愚蠢的 ACSII 字符。

我已经使用了这个页面上的函数,但它最终删除了所有空格并将数据变成了一个长字符串。 (https://www.sqlshack.com/replace-ascii-special-characters-sql-server/)。我猜是因为字符串长度可能非常大(超过 4000)

我做的另一件事是使用替换函数从字符串中去除十六进制 (x07, x0D)。它适用于其中一些,但不是全部。 这是一个包含两个字符的示例。

Quarters 1-4    Q1 - January 1- March 31    Q2 - April 1 - June 30    Q3 - July 1 - September 30    Q4 - October 1 - December 31     

我该如何去掉这些?

【问题讨论】:

标签: sql-server tsql


【解决方案1】:

你试过标准的replace吗?

select replace(replace(@s, char(7), ''), char(21), '')

【讨论】:

  • 做到了。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-21
  • 2010-12-04
  • 1970-01-01
  • 2021-07-23
  • 2017-04-25
  • 1970-01-01
相关资源
最近更新 更多