ORA-01858: a non-numeric character was found where a numeric was expected
OCIStmtExecute: ORA-01858: a non-numeric
character was found where a numeric was expected
在搜尋或更新欄位時,其中一個欄位是日期格式,但進來的值不是數字,而是一個非數字的值,所造成的錯誤。
SELECT TO_DATE([欄位],‘YYYY-MM-DD’) FORM [TABLE_NAME]
INSERT INTO [TABLE_NAME] ([日期欄位]) VALUES (TO_DATE([值],‘YYYY-MM-DD’))
UPDATE [TABLE_NAME] SET [日期欄位]= TO_DATE([值],‘YYYY-MM-DD’)
PHP要寫入資料庫時一直這個出現錯誤訊息,原來是把TO_DATE放錯地方使用,應該要放在SQL內,理解以後感覺犯了一個蠻好笑的錯誤,記錄起來以後不要再犯啦!
正確使用方式
$InserDate=’2019-11-10’;
$SQL=" INSERT INTO [TABLE_NAME] ([日期欄位]) VALUES (TO_DATE([:insertdate],‘YYYY-MM-DD’)) ";
$stmtSel = $dbc->getConnection()->prepare($SQL);
$stmtSel->bindValue(":insertdate",
$InserDate);
錯誤使用:
$stmtSel->bindValue("TO_DATE([:insertdate],‘YYYY-MM-DD’)",
$InserDate);
留言
張貼留言