【发布时间】:2017-03-16 18:24:38
【问题描述】:
相当基本的 sql 命令。只想从我正在循环的不同表中获取计数。但是,如果我更改 sqlCommand 并添加一个 ';'最后我得到异常,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()));
}
}
【问题讨论】:
-
您使用的是哪种数据库产品?可能不是所有的 MySQL、Oracle 和 SQL Server。请编辑标签以仅保留相关的标签。
-
根据代码和错误信息,我删除了不相关的标签。
-
@mathguy 抱歉,Oracle 数据库是数据库产品。
-
无需道歉 - 请记住下次发帖时检查网站默认为您添加的标签 - 它们很少 100% 准确。干杯!
-
@Korey - 看看这个问题:stackoverflow.com/questions/10728377/… - 分隔符是连接/驱动程序的属性,而不是数据库本身。虽然 SQL*Plus 将分号视为查询的结尾,但 Oracle 本身并不需要它。