我正在尝试使用Javascript为Oracle查询生成比较操作数,但是查询会在我有单引号的地方继续显示转义字符。关于如何解决这个问题的任何建议都将非常感激。
let compOperands = "to_date('" + (moment(timeStamp).format("D-MMM-YYYY HH:mm:ss") + "', 'dd-mon-yyyy hh24:mi:ss')");
控制台:
to_date('9-May-2017 06:41:54', 'dd-mon-yyyy hh24:mi:ss')
一旦我将它连接到另一个字符串,转义字符就会出现:
updateQuery = [(queries[queryName].query[0].concat(compOperands))];
控制台:
SELECT * FROM IVR_LZ_CALL_LEG WHERE START_TS > to_date(\'9-May-2017 06:32:32\', \'dd-mon-yyyy hh24:mi:ss\')
编辑: 好吧,我将这一点扩展了一点,当字符串放入数组时,似乎会发生字符的添加。我重构了上面的连接,所以我可以逐步完成控制台中发生的事情。
let updateQuery = [],
queryString = queries[queryName].query[0].concat(compOperands);
updateQuery.push(queryString);
options.json.queries = updateQuery;
console.log(queryString);
console.log(updateQuery);
控制台:
SELECT * FROM IVR_LZ_CALL_LEG WHERE START_TS > to_date('9-May-2017 06:59:27', 'dd-mon-yyyy hh24:mi:ss')
[ 'SELECT * FROM IVR_LZ_CALL_LEG WHERE START_TS > to_date(\'9-May-2017 06:59:27\', \'dd-mon-yyyy hh24:mi:ss\')' ]