如果通过vb.net Oracle查询多个空格,则删除多余的空格

时间:2013-10-08 14:24:26

标签: vb.net winforms oracle

只是寻找另一种方法来删除整个查询中的多余空格(> 1)。我正在从Excel电子表格中获取Oracle查询的信息,因此,由于用户错误等原因,肯定会有一些多余的零,所以当我从excel获取信息时,它会在某些值之后有2个额外的空格因此,当我们通过应用程序查询时,我们不会从Oracle返回任何记录。我尝试过Trim(ds.Tables.Item(0).Rows.Item(k).Item(i).ToString.ToUpper)但这并没有删除某些值中的额外空格。是否有一些我不知道的SQL语句,或者可能是Trim不工作的另一个原因?

编辑:写错替换功能。

Original: string.Replace("  ", " ")
New: string = string.replace("  ", " ")

3 个答案:

答案 0 :(得分:1)

请改用String.Replace(" ", String.Empty)Trim仅删除前导和尾随空格。

答案 1 :(得分:0)

在Oracle方面,您可以使用REGEXP_REPLACE function,但需要将其应用于要从中删除多余空格的每列:

SELECT
  REGEXP_REPLACE(myCol1, ' {2,}', ' ') AS myCleanCol1,
  REGEXP_REPLACE(myCol2, ' {2,}', ' ') AS myCleanCol2,
FROM myTable

此处的示例查找所有出现的两个或多个空格(即第二个参数),并用一个空格(第三个参数)替换它们。

答案 2 :(得分:0)

您可以使用REGEXP_REPLACE

可能是这样的:

regexp_replace(your_column, '\s{2,}', '')

Here is a sqlfiddle demo