2017-03-16 17 views
0

かなり基本的なSQLコマンドです。ちょうど私がループしている別のテーブルからカウントを取得したい。ただし、sqlCommandを変更して ';'私は例外を取得する最後に、SQLコマンドが正しく終了していない。SQLコマンドが正しく終了しない例外

 sqlCommand = String.Format("SELECT COUNT(1) FROM SO.{0} where DR_ADDRESS_ID = {1};", table, drAddr); 

なぜこのセミコロンでこの例外がスローされるのか不思議です。なぜなら、コマンドは ';'で終わると思われるからです。

sqlCommand = String.Format("SELECT COUNT(1) FROM SO.{0} where DR_ADDRESS_ID = {1}", table, drAddr); 
    try 
    {  
     using(OracleCommand ocCommand = new OracleCommand(sqlCommand,CommandType.Text)) 
     { 
      ocCommand.Connection = dbConnection; 
      recordCounter = Convert.ToInt64(ocCommand.ExecuteScalar()); 
     }    
    } 
    catch (Exception er) 
    { 
     MessageBox.Show(String.Format("Error in RecordCount for table {0}: Reference {1} for log. err = {2}",table, logFilePath,er.ToString())); 
     recordCounter = -1; 

     using (StreamWriter writer = new StreamWriter(logFilePath, true)) 
     { 
      writer.WriteLine(String.Format("Table: {0}. Command {1}", table,sqlCommand.ToString())); 
     } 
    } 
+0

どのデータベース製品を使用していますか?おそらく、MySQL、Oracle、SQL Serverのどれでもないでしょう。関連するものだけを保持するようにタグを編集してください。 – mathguy

+1

コードとエラーメッセージに基づいて、無関係のタグを削除しました。 –

+0

@mathguy私のお詫び申し上げなしに、Oracle Databaseはdb製品です。 – Korey

答えて

0

セミコロンは、通常、sqlplusなどの対話型ツールのコマンドターミネータとして使用されます。

関連する問題