如何在JavaScript中正确引用Oracle SQL字符串

如何在JavaScript中正确引用Oracle SQL字符串,javascript,node.js,oracle,Javascript,Node.js,Oracle,在我的node.js应用程序中,我需要运行Oracle查询,如下所示: var last_reported_date = '2016-05-09 18:16:59'; var query = 'SELECT "HpdHelpdesk".INCIDENTNUMBER,' + '"HpdHelpdesk".SUBMITTER,' + '"HpdHelpdesk".REPORTEDDATE,' + '"HpdHelpdesk".LASTRESOLVE

在我的node.js应用程序中,我需要运行Oracle查询,如下所示:

var last_reported_date = '2016-05-09 18:16:59';

 var query = 'SELECT "HpdHelpdesk".INCIDENTNUMBER,' +
        '"HpdHelpdesk".SUBMITTER,' +
        '"HpdHelpdesk".REPORTEDDATE,' +
        '"HpdHelpdesk".LASTRESOLVEDDATE,' +
        '"HpdHelpdesk".OWNERGROUP,' +
        '"HpdHelpdesk".COMPANY,' +
        '"HpdHelpdesk".CATEGORIZATIONTIER1,' +
        '"HpdHelpdesk".CATEGORIZATIONTIER2,' +
        '"HpdHelpdesk".CATEGORIZATIONTIER3,' +
        '"HpdHelpdesk".RESOLUTIONCATEGORY,' +
        '"HpdHelpdesk".RESOLUTIONCATEGORYTIER2,' +
        '"HpdHelpdesk".RESOLUTIONCATEGORYTIER3,' +
        '"HpdHelpdesk".REPORTEDSOURCE,' +
        '"HpdHelpdesk".DESCRIPTION,' +
        '"HpdHelpdesk".ID' +
' FROM "HpdHelpdesk" ' +
'WHERE "HpdHelpdesk".REPORTEDDATE > TO_DATE(' + last_reported_date + ',' + 'YYYY-MM-DD HH24:MI:SS)';
当我运行此命令时,我得到以下Oracle错误:
错误:ORA-00907:缺少右括号


设置此类查询的格式以避免此错误的正确方法是什么?

您仅从单个表中进行选择,因此不需要在每个列名前面加上表名。此外,在查询结束时,
TO_date
函数的上次报告日期和格式掩码周围缺少引号

var last_reported_date = '2016-05-09 18:16:59';

var query = 'SELECT INCIDENTNUMBER,' +
        'SUBMITTER,' +
        'REPORTEDDATE,' +
        'LASTRESOLVEDDATE,' +
        'OWNERGROUP,' +
        'COMPANY,' +
        'CATEGORIZATIONTIER1,' +
        'CATEGORIZATIONTIER2,' +
        'CATEGORIZATIONTIER3,' +
        'RESOLUTIONCATEGORY,' +
        'RESOLUTIONCATEGORYTIER2,' +
        'RESOLUTIONCATEGORYTIER3,' +
        'REPORTEDSOURCE,' +
        'DESCRIPTION,' +
        'ID' +
' FROM "HpdHelpdesk" ' +
'WHERE REPORTEDDATE > TO_DATE( \'' + last_reported_date + '\', \'YYYY-MM-DD HH24:MI:SS\')';

您仅从单个表中进行选择,因此不需要在每个列名前面加上表名。此外,在查询结束时,
TO_date
函数的上次报告日期和格式掩码周围缺少引号

var last_reported_date = '2016-05-09 18:16:59';

var query = 'SELECT INCIDENTNUMBER,' +
        'SUBMITTER,' +
        'REPORTEDDATE,' +
        'LASTRESOLVEDDATE,' +
        'OWNERGROUP,' +
        'COMPANY,' +
        'CATEGORIZATIONTIER1,' +
        'CATEGORIZATIONTIER2,' +
        'CATEGORIZATIONTIER3,' +
        'RESOLUTIONCATEGORY,' +
        'RESOLUTIONCATEGORYTIER2,' +
        'RESOLUTIONCATEGORYTIER3,' +
        'REPORTEDSOURCE,' +
        'DESCRIPTION,' +
        'ID' +
' FROM "HpdHelpdesk" ' +
'WHERE REPORTEDDATE > TO_DATE( \'' + last_reported_date + '\', \'YYYY-MM-DD HH24:MI:SS\')';

添加到MTO的答案中,您需要为每个换行符添加空格,这样您就不会得到一个没有空格的长字符串:

var last_reported_date = '2016-05-09 18:16:59';

var query = '' + 
    'SELECT INCIDENTNUMBER, ' +
        'SUBMITTER, ' +
        'REPORTEDDATE, ' +
        'LASTRESOLVEDDATE, ' +
        'OWNERGROUP, ' +
        'COMPANY, ' +
        'CATEGORIZATIONTIER1, ' +
        'CATEGORIZATIONTIER2, ' +
        'CATEGORIZATIONTIER3, ' +
        'RESOLUTIONCATEGORY, ' +
        'RESOLUTIONCATEGORYTIER2, ' +
        'RESOLUTIONCATEGORYTIER3, ' +
        'REPORTEDSOURCE, ' +
        'DESCRIPTION, ' +
        'ID ' +
    'FROM "HpdHelpdesk" ' +
    'WHERE REPORTEDDATE > TO_DATE( \'' + last_reported_date + '\', \'YYYY-MM-DD HH24:MI:SS\')';

添加到MTO的答案中,您需要为每个换行符添加空格,这样您就不会得到一个没有空格的长字符串:

var last_reported_date = '2016-05-09 18:16:59';

var query = '' + 
    'SELECT INCIDENTNUMBER, ' +
        'SUBMITTER, ' +
        'REPORTEDDATE, ' +
        'LASTRESOLVEDDATE, ' +
        'OWNERGROUP, ' +
        'COMPANY, ' +
        'CATEGORIZATIONTIER1, ' +
        'CATEGORIZATIONTIER2, ' +
        'CATEGORIZATIONTIER3, ' +
        'RESOLUTIONCATEGORY, ' +
        'RESOLUTIONCATEGORYTIER2, ' +
        'RESOLUTIONCATEGORYTIER3, ' +
        'REPORTEDSOURCE, ' +
        'DESCRIPTION, ' +
        'ID ' +
    'FROM "HpdHelpdesk" ' +
    'WHERE REPORTEDDATE > TO_DATE( \'' + last_reported_date + '\', \'YYYY-MM-DD HH24:MI:SS\')';