При отправке данных на oracle с Nodejs, по какой причине я не вижу записи, даже если я получил ошибку? - PullRequest
0 голосов
/ 14 июля 2020

У меня есть процедура вставки, а параметр in представляет собой таблицу. Я ввожу параметры для процедуры вставки, я не получаю сообщения об ошибке, но всякий раз, когда я запрашиваю, я не вижу записей в таблице.

Это моя таблица PL- SQL;

 TYPE          t_db2sms_a is table of t_db2sms_r

 TYPE          t_db2sms_r is object
        (
        kullanici                  VARCHAR2(50),
        hesno                      number,
        telno                      VARCHAR2(128),
        mesaj                      VARCHAR2(1024)
        )

Имя процедуры;

  procedure SMS_GONDER (p_ARRAYIN  in t_db2sms_a) ;

Тело процедуры:

procedure SMS_GONDER (p_ARRAYIN  in t_db2sms_a) IS
    v_cnt number:=p_ARRAYIN.count();
    v_err varchar2(4000);
   BEGIN
        insert into sil values (v_cnt);
        commit;
        for i in 1..p_ARRAYIN.count() loop
            insert into sms_db2
            values (
            trunc(sysdate),
            p_ARRAYIN(i).kullanici,
            p_ARRAYIN(i).hesno,
            p_ARRAYIN(i).telno,
            p_ARRAYIN(i).mesaj,
            null,
            0,
            null );
        end loop;
        commit;
   exception when others then 
   v_err:=sqlerrm;
        insert into sil values (v_err);
        commit;
   END;

модуль sendSms;

module.exports.sendSms =
{
    typeName1 :"T_DB2SMS_A",
    nlsLang :`alter session set nls_language = "TURKISH"`,
    nlsDateFormat :`alter session set nls_date_format = 'DD/MM/YYYY'`,
    procedureCall :`BEGIN PKG_DB2.SMS_GONDER(:p_ARRAYIN);END;`

}

модуль infoSms:

module.exports.infoSms = function(type,infSms){
   binds ={
      p_ARRAYIN:{
         type:type,
         dir:oracledb.BIND_IN,
         val:infSms
      }
   }
   return binds;
}

мой модуль выполнения;

module.exports = async function(userCodes,customerNo,phoneNumbers,messageText,connection){

    var obj ={
        kullanici:userCodes,
        hesno:customerNo,
        telno:phoneNumbers,
        mesaj:messageText
    }
     
            
        try{
         var tp = await connection.getDbObjectClass(sendSms.typeName1);
         var getBinds =await infoSms(tp,obj)
         await connection.execute(sendSms.nlsLang);
         await connection.execute(sendSms.nlsDateFormat);
         await connection.execute(sendSms.procedureCall,getBinds);
         logger.log('info',obj)
 }catch(e){
    logger.log('error',e.stack)}
    
}

Это все мои Oracle коды и Node js код. Я имею в виду, что я говорю, что есть нет ошибок, но я не вижу свои записи, когда выбираю запрос. Что я могу для этого сделать. Что мне не хватает?

И как я могу получить сообщение об успешном завершении или подобное сообщение.

...