2015-01-13 268 views
1

我想在unix命令提示符下执行db2命令db2 -tvsf UC_Repair_History.sql它给了我下面的错误。我在文件中检查了只有插入语句在那里。我已经执行了类似的文件,那些正在执行的这一个没有执行。下面DB21034E IBM db2错误

DB21034E The command was processed as an SQL statement because it was not a valid Command Line Processor command. During SQL processing it returned: SQL0104N An unexpected token "END-OF-STATEMENT" was found following "�". Expected tokens may include: "JOIN <joined_table>". SQLSTATE=42601

错误给出,请任意一个帮助

+1

您是否使用Windows?不同的编码?在文本编辑器(如Notepad ++)中打开文件并检查文档。你可能必须有一个奇怪的角色。然后编码和结束行字符可能是问题。 – AngocA

+0

文本编码采用utf-8格式。这些脚本在Linux机器上。 –

+1

你在vi中打开过这个文件吗?在当前编码中应该有一个无效字符,例如:çáéíóññ£μè§ – AngocA

回答

2

当例如执行复制粘贴&从Word中可能会使用DB2 CLI不理解的印刷引号。根据字体,可能很难找出差异。在下面的第一个选择语句是从Word复制的,在第二个语句中,我重新键入了引号:

db2 => SELECT COUNT(*) FROM SYSCAT.TABLES WHERE TABSCHEMA='SAPSR3' 
SQL0104N An unexpected token "'SAPSR3'" was found following "RE 
TABSCHEMA=’S". Expected tokens may include: "END-OF-STATEMENT". 
SQLSTATE=42601 

db2 => SELECT COUNT(*) FROM SYSCAT.TABLES WHERE TABSCHEMA='SAPSR3' 

1 
----------- 
      0 

    1 record(s) selected.