【问题标题】:Error: ORA-01036: illegal variable name/number - NodeJS错误:ORA-01036:非法变量名称/编号 - NodeJS
【发布时间】:2020-01-15 03:24:06
【问题描述】:

我创建了一个 API 并希望将数据插入到 oracle 数据库中。但是我收到一条错误消息“错误:ORA-01036:非法变量名称/编号”。我不知道我犯了什么错误。希望能帮我解决这个问题。提前谢谢你。

[错误:ORA-01036:非法变量名/编号] { 错误编号:1036, 偏移量:0 }

//post 
async function AddData(form){

     console.log(form);

     let Status = {
          status:_const.MSG_STATUS_ERROR,
          message:_const.MSG_STATUS_ERROR,
          info:null
     };


     let connection;
     let date = new Date();

     try{
          connection = await oracledb.getConnection(dbconfig);

          const result = await connection.execute(
               `INSERT INTO EIS_PANTAURUM 
               (    
                    PAN_ZONRUMPUT,PAN_TAMRUMPUT,PAN_BULANPTAU,PAN_MASAPNTAU,
                    PAN_STATUSKOD,PAN_CATATANSS,PAN_SEBLUMPIC,PAN_SLEPASPIC,
                    PAN_SEMASAPIC,PAN_ENTRYOPER,PAN_ENTRYDATE,PAN_TIMESAMPM,
                    PAN_PUSINGANS,PAN_TAHUNRPUT
               )
               VALUES
               (    :zon,:taman,:bulan,:masa,
                    :status,:catatan,:sebelumPic,:selepasPic,
                    :semasaPic,:entryOperator:entryDate,:timeAMPM,
                    :pusingan,:tahun
               )`,{zon:form.zon,taman:form.taman,bulan:form.bulan,masa:form.masa
                    ,status:form.status,catatan:form.catatan,sebelumPic:"Empty.jpg",selepasPic:"Empty.jpg"
                    ,semasaPic:"Empty.jpg",entryOperator:form.entryOperator,entryDate:date,timeAMPM:form.timeAMPM
                    ,pusingan:form.pusingan,tahun:form.tahun}
          );

          Status.status = _const.MSG_STATUS_SUCCESS;
          Status.message = _const.MSG_STATUS_SUCCESS;
          Status.info = result.rowsAffected;     


     }catch(err){
          console.error(err);
          Status.message = err;
          return Status;

     }finally{
          if(connection){
               try{
                    await connection.close();
               }catch(err){
                    console.error(err);
                    Status.message = err;
                    return Status;
               }
          }
     }

     return Status;

}

router.post('/api/AddData/:zon/:syarikat/:alamat_syarikat/'+
          ':nama_penyelia/:taman/:bulan/:tahun/:masa/:timeAMPM/:pusingan/:status/:catatan/:state/'+
          ':entryOperator',(req,res) =>{

     AddData(req.params).then(function(value){
          console.log(value);
          res.send(value);
     })`enter code here`
})

【问题讨论】:

  • 堆栈跟踪的其余部分在哪里?它将有一个行号。简要阅读您的代码,date = new Date(); 中的日期也未定义。
  • @BlueWater86 我添加了行号,日期也显示值:2020-01-15T03:31:08.486Z
  • 那不是行号。
  • 你还没有声明你的“日期”变量。
  • VALUES SQL 子句的 ":entryOperator:entryDate" 有错别字,你少了一个逗号。

标签: javascript oracle node-oracledb


【解决方案1】:

我认为其中缺少逗号

:entryOperator:entryDate

这里应该是下面这个

:entryOperator,:entryDate

我建议您在每个逗号后使用空格。这样的习惯可以帮助你避免类似的错误

【讨论】:

    猜你喜欢
    • 2013-01-06
    • 2011-10-05
    • 1970-01-01
    • 2020-07-29
    • 2016-04-03
    • 1970-01-01
    • 2018-10-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多