У меня есть следующая схема ...
CREATE TABLE CALL_DATE(
ID VARCHAR(30) NOT NULL,
SERVER VARCHAR(30) NOT NULL,
MADE_DATE DATE NOT NULL,
CONSTRAINT CALL_SERVER_CONSTRAINT UNIQUE (ID, SERVER)
);
И у меня есть следующий код с использованием узла oracle драйвер ...
const SELECT_QUERY = "SELECT * FROM CALL_DATE WHERE MADE_DATE = TO_DATE(?,'YYYY-MM-DD')";
const SQL_FMT = "YYYY-MM-DD";
query(cmd, params){
params = params || [];
CallDate.validatePool(this.pool);
return this.connection.then((connection)=>{
console.log("Connection Created "+JSON.stringify(params));
return connection.execute(
cmd,
params
);
});
}
getCallsOnDate(date){
date = moment(new Date(date));
console.log(`The date is ${date.format(SQL_FMT)}`);
return this.query(
SELECT_QUERY,
[date.format(SQL_FMT)]
).catch((err)=>{
Logger.log("error", `Error getting call dates on ${date} ${err}`);
throw new Error(err);
});
}
...
// works
obj.query(`SELECT * FROM CALL_DATE`).then((result)=>{
console.log(`Query completed ${JSON.stringify(result)}`);
});
// Fails
obj.getCallsOnDate("12/21/2012").then((result)=>{
console.log(`getCallsOnDate completed ${JSON.stringify(result)}`);
})
Все работает для запроса функция, но когда я пытаюсь использовать функцию даты, я получаю ...
ORA-01036: недопустимое имя / номер переменной
Если я запускаю следующее в Oracle SQL Разработчик Все отлично работает ...
SELECT * FROM CALL_DATE WHERE MADE_DATE = TO_DATE('2020-01-01','YYYY-MM-DD');
Чего мне не хватает, почему он работает в SQL разработчику, а не в коде узла?