0

感谢您阅读这篇文章。尝试通过 Log parser 2.2 执行 sql 时出现上述错误;

执行 logparser sql 文件时出现“错误:语法错误::没有 SELECT 关键字”

.

这就是我所做的:

  1. 创建了一个 SQL 查询,该查询读取位于特定文件夹中的日志文件并创建一个包含更新数据的新文本文件。

  2. 使用日志解析器创建了一个批处理文件来执行这个 SQL 文件。

    "C:\Program Files\Log Parser 2.2\logparser.exe" 文件:"C:\Temp\Concur\test\test.sql" -i:CSV -headerRow:OFF -fixedFields:OFF -o:CSV -headers:离开”

  3. 运行批处理文件。它可以正常工作。一个新的文本文件被创建。

问题

  1. 我更新了 test.sql 文件中的源文件位置。我使用相同的源文件,但将其复制到不同的文件夹。

.... INTO * 来自 'C:\Temp\Concur\test\Working*.txt' ..

  1. 运行批处理文件,我得到上述错误:

执行 logparser sql 文件时出现“错误:语法错误::没有 SELECT 关键字”

. 3. 我恢复了我所做的更改,所以现在源文件指向原始位置。运行批处理文件,仍然出现相同的错误。

有什么想法吗?

非常感谢。


SQL 文件:

    select  

CASE TO_UPPERCASE(SUBSTR(EXTRACT_TOKEN(Filename, 4, '_'),0,2))
WHEN 'RE' THEN  STRCAT(STRCAT(STRCAT(EXTRACT_PREFIX(EXTRACT_FILENAME(Filename), 3 ,'_'),'_Retry'),TO_STRING(ADD(TO_INT(SUBSTR(EXTRACT_TOKEN(Filename, 4, '_'),5,SUB(STRLEN(EXTRACT_TOKEN(Filename, 4, '_')),9))),1))),'.txt')
ELSE STRCAT(EXTRACT_PREFIX(EXTRACT_FILENAME(Filename), 3 ,'_'),'_Retry1.txt')
END AS newincrement


,Field1
,Field2
,Field3
,Field4
,Field5
,Field6
,Field7
,Field8
,CASE  Field10
    WHEN 'AU' THEN STRCAT('en_',Field10)
    WHEN 'CA' THEN STRCAT('en_',Field10) 
    WHEN 'GB' THEN STRCAT('en_',Field10) 
    WHEN 'IE' THEN STRCAT('en_',Field10)
    WHEN 'IN' THEN STRCAT('en_',Field10) 
    WHEN 'NZ' THEN STRCAT('en_',Field10) 
    WHEN 'US' THEN STRCAT('en_',Field10)
    WHEN 'ZA' THEN STRCAT('en_',Field10)
    ELSE 'en_GB' END AS Field9 
,Field10
,Field11
,Field12
,Field13
,Field14
,Field15
,Field16
,Field17
,Field18
,Field19
,Field20
,Field21
,Field22
,Field23
,Field24
,Field25
,Field26
,Field27
,Field28
,Field29
,Field30
,Field31
,Field32
,Field33
,Field34
,Field35
,Field36
,Field37
,Field38
,Field39
,Field40
,Field41
,Field42
,Field43
,Field44
,Field45
,Field46
,Field47
,Field48
,Field49
,Field50
,Field51
,Field52
,Field53
,Field54
,Field55
,Field56
,Field57
,Field58
,Field59
,Field60
,Field61
,Field62
,Field63
,Field64
,Field65
,Field66
,Field67
,Field68
,Field69
,Field70
,Field71
,Field72
,Field73
,Field74
,Field75
,Field76
,Field77
,Field78
,Field79
,Field80
,Field81
,Field82
,Field83
,Field84
,Field85
,Field86


INTO
    *   
from
    'C:\Temp\Concur\test\Working\*.txt'

批处理文件:

"C:\Program Files\Log Parser 2.2\logparser.exe" file:"C:\Temp\Concur\test\test3.sql" -i:CSV -headerRow:OFF -fixedFields:OFF -o:CSV -headers:OFF
4

1 回答 1

0

问题解决了。

谢谢@GabrieleGiuseppini,这是第一个。当我保存sql文件时,它被保存为UTF-8。我已将其保存为 ANSI,现在一切正常。谢谢您的帮助。

于 2013-08-16T05:20:53.683 回答