在CSV中处理逗号和双引号

时间:2013-08-12 21:08:38

标签: csv sqr

我正在SQR中编写报告,生成CSV输出文件。在测试时,我遇到了一个实例,其中我的一个字段中使用了以下字符串:

  

表 - 210“X 60”X 29“,OAK,

我目前在字符串周围有双引号。当我使用这个方法时,产生的输出是:

  

Col 1 | Col 2 | Col 3

     

表 - 210 X 60“X 29”| OAK | ,

显然,整行应该适合第一列。

我知道可以使用其他分隔符,但更喜欢保留逗号分隔符。有谁知道解决这个问题的方法?

以下是当前代码的简化版本:

Let $asset_descr = '"' || &dep_asset.descr || '"'
Let $string = $asset_descr
Write 1 from $string 

1 个答案:

答案 0 :(得分:2)

经过大量的搜索和测试后,我终于解决了这个问题。 为了解决这个问题,我简单地用两个双引号替换每个双引号。有两个双引号将双引号视为“转义值”...我猜这意味着双引号不会被视为封闭引号。

这可能是特定于SQR的解决方案。

简化代码解决方案:

Let $asset_descr = '"' || Replace(&dep_asset.descr, '"', '""') || '"'
Let $string = $asset_descr
Write 1 from $string