首页 > 解决方案 > 错误:ORA-01036:非法变量名称/编号 - NodeJS

问题描述

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

[错误:ORA-01036:非法变量名称/编号] { errorNum: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`
})

标签: javascriptoraclenode-oracledb

解决方案


我相信里面少了一个逗号

:entryOperator:entryDate

这里必须是以下内容

:entryOperator,:entryDate

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


推荐阅读