2015-01-13 266 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.