Informix 11.5
我正在尝试搜索可能存在于VARCHAR字段中的回车符和换行符。首先,我需要一个SELECT语句来表明它们存在。其次,我需要用空格或其他字符替换它们。 我尝试了各种各样的变体:
CHR(10) + CHR(13)
CHR(10) || CHR(13)
CHAR(13) + CHAR(10)
CHAR(13) || CHAR(10)
SELECT CHR(10) from systables;
所有内容都会出错:Routine (chr) can not be resolved.
我一直在搜索,但却找不到有用的东西,而且我确定这很容易让人觉得愚蠢。
答案 0 :(得分:2)
IDS 11.70中添加了CHR()
功能;它不在IDS 11.50中。
好消息是您可以添加该功能,因为IDS是一个可扩展的服务器。对您而言,更好的消息是,您可以IIUG web site部分Software Archive下Miscellaneous中的ascii
获取相关代码。{/ p>
这应该可以让你做你需要的。 (注意:在任何服务器内置了支持之前,我写回代码的方式。)
我正在上传
ascii.unl
文件,但我收到的错误是第13行的列数不匹配。您之前看过这个吗?我在Windows 2008上。错误是:
846: Number of values in load file is not equal to number of columns.
847: Error in load file line 13.
我之前没见过,但是我还没有在Windows上试过这个文件......好吧,让我们说Windows上的生活比在Unix上变得更加棘手(而且这一点并非如此) #39;在Unix上就这么简单。)
首先,数据文件需要具有CRLF行结尾,而不是Unix上标准的仅NL行结尾。 (注意,NL,换行符是LF的另一个名称,换行符 - 又名'\n'
。)对于卸载文件中的大多数行,这不是问题。
可能存在问题的两个条目分别是CR和LF - 条目13和10。理论上,如果第10行的条目包含(以C字符串表示法)"10|\\\n\r\n"
(即10,管道,反斜杠,换行符,CRLF),那么一切都应该没问题;第10行没有错误消息表明它没问题。
同样,第13行的条目是"13|\r\r\n"
,这显然会引起悲伤。最简单的试用方法是在这里添加一个反斜杠:"13|\\\r\r\nn"
。反斜杠说"下一个字符没有特殊含义"。如果这不起作用,我们可能必须尝试使用hex-escape表示法:"13|\\0d\r\n"
- 并使用dbaccess -X
启用十六进制转义符号。
幸运的是,这两个(或两个)中的一个将起作用。如果两者都不起作用,请回来,我们会尝试考虑别的事情。
答案 1 :(得分:0)