【问题标题】:Invalid character error SQL, OracleDataReader无效字符错误 SQL、OracleDataReader
【发布时间】:2015-09-09 05:34:01
【问题描述】:

卡在里面的代码

    OracleDataReader reader = inst.Command.ExecuteReader();

出现错误 ORA-00911:无效字符(在查询中)。我已经分别检查了查询的工作情况。请指导

    public DataSet Get_CurrentTask(Employee emp)
    {
        if (inst.isConnected == true)
        {
            string query = "SELECT employees.empl_id, employees.emp_name FROM employees  LEFT  JOIN TASK_SUM   On employees.empl_id= TASK_SUM.emp_ID;";  
            Database inst.Command = new System.Data.OracleClient.OracleCommand(query, inst.getConnection());
            inst.Command.CommandType = CommandType.Text;
            OracleDataAdapter da= new OracleDataAdapter(inst.Command);
            OracleCommandBuilder cb = new OracleCommandBuilder(da);
            OracleDataReader reader = inst.Command.ExecuteReader();
            DataSet ds = new DataSet();
            da.Fill(ds);
        }
        return ds;
    }

【问题讨论】:

  • 你能用堆栈跟踪显示完整的异常吗
  • 我认为SQL语句末尾的分号一定不能。即string query = "SELECT employees.empl_id, employees.emp_name FROM employees LEFT JOIN TASK_SUM On employees.empl_id= TASK_SUM.emp_ID";
  • 我认为您必须删除查询末尾的分号。
  • 谢谢,它通过删除查询末尾的分号来工作

标签: c# sql oracle


【解决方案1】:

您必须删除查询字符串末尾的分号。因为 Oracle 命令方法会自动将分号添加到查询字符串的末尾。

所以,

   public DataSet Get_CurrentTask(Employee emp)
{
    if (inst.isConnected == true)
    {
        string query = "SELECT employees.empl_id, employees.emp_name FROM employees  LEFT  JOIN TASK_SUM   On employees.empl_id= TASK_SUM.emp_ID";  
        Database inst.Command = new System.Data.OracleClient.OracleCommand(query, inst.getConnection());
        inst.Command.CommandType = CommandType.Text;
        OracleDataAdapter da= new OracleDataAdapter(inst.Command);
        OracleCommandBuilder cb = new OracleCommandBuilder(da);
        OracleDataReader reader = inst.Command.ExecuteReader();
        DataSet ds = new DataSet();
        da.Fill(ds);
    }
    return ds;
}

必须工作。

【讨论】:

  • 它通过从查询中删除分号来工作。谢谢
猜你喜欢
  • 2014-05-17
  • 2013-06-08
  • 2014-02-23
  • 2015-07-16
  • 2014-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-18
相关资源
最近更新 更多