当前位置: 首页 > 知识库问答 >
问题:

ORA-01036非法变量名称/编号c#

江恩
2023-03-14

请帮帮我

获取日期范围的数据时出错

DataTable dt = new DataTable();

       StringBuilder sb = new StringBuilder("SELECT (select dep_title from hr.departments dp where dp.dep_id = d.dep_id) as title,    (SELECT COUNT(*) FROM esd.DOCUMENTS T");
       sb.Append("WHERE T.DEP_ID = D.DEP_ID");
       sb.Append("and t.systarix between");
       sb.Append("to_date(':FROM_DATE', 'MM.DD.YYYY') And");
       sb.Append("to_date(':TO_DATE', 'MM.DD.YYYY')) AS SAY");
       sb.Append("FROM HR.DEPARTMENTS D");


       command.CommandText = sb.ToString();

       command.Parameters.Add("FROM_DATE", OracleType.VarChar);
       command.Parameters["FROM_DATE"].Value = DE_from.DateTime.Date;
       command.Parameters.Add("TO_DATE", OracleType.VarChar);
       command.Parameters["TO_DATE"].Value = DE_to.DateTime.Date;


       dt.Load(command.ExecuteReader());

       gridControl1.DataSource = dt;

错误

ora-01036非法变量名称/编号

共有1个答案

松新
2023-03-14

这是您的查询的外观,也是为什么您不关闭子选择中的开头)。我建议您阅读一些基本的Sql选择。Oracle在语法方面有非常好的文档。

同时阅读如何正确构造/格式化子查询

查看“选择我格式化了它”对话框中的字段,以便可以看到使用StringBuilder生成的原始查询。

SELECT 
(
    select dep_title from hr.departments dp where dp.dep_id = d.dep_id) as title,
    (
        SELECT COUNT(*) FROM esd.DOCUMENTS TWHERE T.DEP_ID = D.DEP_IDand t.systarix 
        betweento_date(':FROM_DATE', 'MM.DD.YYYY') Andto_date(':TO_DATE', 'MM.DD.YYYY')
    ) AS SAYFROM HR.DEPARTMENTS D

由于没有添加间距“”,因此您的错误是

这里应该是哪里

D.DEP_ID和t.systarix这应该是D.DEP_ID和t.systarix

betweento_date这应该是to_date

正如所说,从这应该是从说

我建议/建议您在Oracle Developer中创建Select查询并首先执行它们。一旦查询开始工作,就将查询转换为存储过程

 类似资料:
  • 我有下面的insert查询 每次我尝试运行此查询时,都会出现此错误 我做了一些研究,显然这意味着其中一个变量不在SQL语句中。对我来说不是这样,我检查了语句、数据库(oracle)表和所有绑定变量,它们都匹配。 错误上的行号将表明它是$driveable变量。我做了一个检查,这是被发送到页面罚款。 不知道还有什么地方可以看,所以任何帮助都会很好。

  • 为什么在Oracle DB中出现此错误? cx_Oracle。ORA-01036:非法变量名称/数字

  • 我已经创建了一个API,希望将数据插入oracle数据库。但我收到一条错误消息“error:ORA-01036:非法变量名/编号”。我不知道我犯了什么错误。希望能帮我解决这个问题。先谢谢你。 [错误:ORA-01036:非法变量名/编号]{errorNum:1036,偏移量:0}

  • 我面临的问题,在更新表单视图值使用sqldatasSource绑定与Oracle数据库。 我的选择和插入事件工作正常,所有列和参数都正确。 但当我点击下面的更新按钮时,出现了错误: "ORA-01036:非法变量名称/数字" 以下是我在sqldatasource(与oracle绑定)中使用的更新命令: 我的问题解决了,因为我没有使用主键来匹配在哪里条件,当我用主键更改在哪里条件时,它开始工作。 在

  • 我想更新gridview中的行的单元格。但我得到的错误是 ORA-01036:非法变量名称/编号 在 下面是我的代码:-

  • 我正在尝试使用oracledb客户端从nodejs对oracle数据库执行查询,并得到“ORA-01036:非法变量名/编号”。我尝试了多种建议的方法来传递我的变量,但失败了。使用硬代码值的查询。 以下是我的示例代码: 获取"ORA-01036:非法变量名称/数字"或空结果