当前位置: 首页 > 知识库问答 >
问题:

为什么我在使用TO_DATE时会得到“ORA-01036:非法变量名/编号”,但在Oracle SQL developer上工作?(使用节点)

葛成双
2023-03-14

我有以下模式...

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:非法变量名称/数字

如果我运行以下OracleSQLDeveloper一切正常...

SELECT * FROM CALL_DATE WHERE MADE_DATE = TO_DATE('2020-01-01','YYYY-MM-DD');

我错过了什么,为什么它在SQL开发人员中工作,而不是节点代码

共有1个答案

后烨煜
2023-03-14

哎呀,我从MySQL移植了这段代码,所以我需要更新我的查询,看起来像这样...

const SELECT_QUERY = "SELECT * FROM CALL_DATE WHERE MADE_DATE = TO_DATE(:1,'YYYY-MM-DD')";

注意:1而不是

 类似资料:
  • 我有下面的insert查询 每次我尝试运行此查询时,都会出现此错误 我做了一些研究,显然这意味着其中一个变量不在SQL语句中。对我来说不是这样,我检查了语句、数据库(oracle)表和所有绑定变量,它们都匹配。 错误上的行号将表明它是$driveable变量。我做了一个检查,这是被发送到页面罚款。 不知道还有什么地方可以看,所以任何帮助都会很好。

  • 请帮帮我 获取日期范围的数据时出错 错误 ora-01036非法变量名称/编号

  • 我想更新gridview中的行的单元格。但我得到的错误是 ORA-01036:非法变量名称/编号 在 下面是我的代码:-

  • 为什么在Oracle DB中出现此错误? cx_Oracle。ORA-01036:非法变量名称/数字

  • 我已经创建了一个API,希望将数据插入oracle数据库。但我收到一条错误消息“error:ORA-01036:非法变量名/编号”。我不知道我犯了什么错误。希望能帮我解决这个问题。先谢谢你。 [错误:ORA-01036:非法变量名/编号]{errorNum:1036,偏移量:0}

  • 我面临的问题,在更新表单视图值使用sqldatasSource绑定与Oracle数据库。 我的选择和插入事件工作正常,所有列和参数都正确。 但当我点击下面的更新按钮时,出现了错误: "ORA-01036:非法变量名称/数字" 以下是我在sqldatasource(与oracle绑定)中使用的更新命令: 我的问题解决了,因为我没有使用主键来匹配在哪里条件,当我用主键更改在哪里条件时,它开始工作。 在