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

"ORA-01036:非法变量名称/数字"

陈野
2023-03-14

我正在尝试使用oracledb客户端从nodejs对oracle数据库执行查询,并得到“ORA-01036:非法变量名/编号”。我尝试了多种建议的方法来传递我的变量,但失败了。使用硬代码值的查询。

以下是我的示例代码:

`# try 1
 var selectStatement = "SELECT * FROM FILEPROCESS_USER where EMAIL like 
 ?";
 # try 2 
var selectStatement = "SELECT * FROM FILEPROCESS_USER where EMAIL like" + EMAIL+;
# try 3
var bindVars = {
    userid : EMAIL,
    resultSet: {dir: oracledb.BIND_OUT, type: oracledb.STRING, maxSize: 
32767},
    error: {dir: oracledb.BIND_OUT, type: oracledb.STRING, maxSize: 4000} } ;
   connection.execute( "SELECT * FROM FILEPROCESS_USER where EMAIL= 
  :userid", bindVars {*



 handleDatabaseOperation( req, res, function (request, response, 
 connection) 
  {
   var EMAIL = 'ABC@GMAIL.COM';
   connection.execute( selectStatement, [email], 
   outFormat: oracledb.OBJECT 
    },function (err, result) {
        if (err) {
       console.log('Error in execution of select statement'+err.message);
       response.writeHead(500, {'Content-Type': 'application/json'});
       response.end(JSON.stringify({ status: 500, detailed_message: 
       err.message })
       );
       } 
    else {
    response.writeHead (200, {'Content-Type': 'application/json'});
    response.end(JSON.stringify(result.rows));
    }
 `

获取"ORA-01036:非法变量名称/数字"或空结果

共有1个答案

钦楚青
2023-03-14

尝试#1不起作用,因为Oracle数据库不使用该语法。

尝试#2不起作用有两个原因:“选择*从FILEPROCESS_USER电子邮件”电子邮件;

首先,“喜欢”和“电子邮件”之间没有空间,所以它们连接在一起。

其次,它没有正确使用绑定变量。

这本可以奏效的:

“从FILEPROCESS_用户中选择*电子邮件,如:EMAIL”;

尝试#3不起作用,因为您在SQL中有一个绑定变量,但您提供了多个绑定变量值。

 类似资料:
  • 我已经用“select*from person”测试过了,效果不错。我想得到一份名字以“a”开头的人的名单。这可能吗?

  • 请帮帮我 获取日期范围的数据时出错 错误 ora-01036非法变量名称/编号

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

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

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

  • 我有一个网格视图。它连接到一个SqlDataSource。我的数据库是Oracle。 当我运行网页时,选择command works,我会看到列表中的项目。单击“删除”按钮时,出现以下错误: ORA-01036:非法变量名称/数字 以下是我的GridView和SqlDataSource: