亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Oracle 綁定變量 to_date 參數錯誤

Oracle 綁定變量 to_date 參數錯誤

料青山看我應如是 2021-11-23 19:11:31
我正在編寫使用 Python 腳本執行 SQL (Oracle) 語句的代碼,如下所示:PYTHON:with open(os.path.join(WORKING_PATH, "sql", "fetchCalendar.sql"), 'r') as     fetch_date = fetch.read()   #(Some other code)CD = timestamp_tostring(ACTUALDATE)print("CD:", CD)cnnSB.cursor.execute(fetch_date, CD)獲取日歷.sqlSELECT YEARNBR as yearnbr, QUARTERNBR as quarternbr, MONTHNBR as monthnbr, WEEKNBR as weeknbr FROM MFS_MFSCALENDARWHERE ACTUALDATE = TO_DATE(:CD, 'DD-MON-YY')當我嘗試使用以下值運行它時,會輸出:CD:30-AUG-18回溯(最近一次調用):文件“AHT_Init.py”,第 919 行,在 init_load(data, end_of_week, cur, 3) 文件“AHT_Init.py”,第 644 行,在 init_load populate_rollup(modelid, test_data, train_data, rollup_cmd ) 文件“AHT_Init.py”,第 684 行,在 populate_rollup cnnSB.cursor.execute(fetch_date, CD) cx_Oracle.DatabaseError: ORA-01036: 非法變量名/編號(強調'ORA-01036:非法變量名/編號')當然,我嘗試更改變量名稱無濟于事。我嘗試使用 Oracle SQL Developer 運行 SQL 代碼(在提示時傳入'01-JUN-18',包括單引號),并收到此錯誤:ORA-01858: 在需要數字的地方找到了非數字字符 01858. 00000 - “在需要數字的地方找到了非數字字符” *原因:使用日期格式模型轉換的輸入數據不正確. 輸入數據不包含數字,格式模型需要數字。*操作:修復輸入數據或日期格式模型以確保元素在數量和類型上匹配。然后重試該操作。但是,當我用以下內容替換有問題的行時:WHERE ACTUALDATE = TO_DATE('01-JUN-18', 'DD-MON-YY');代碼按預期工作。任何人都可以引導我了解問題可能是什么,以及如何解決它?非常感謝!編輯:我知道 fetchCalendar.sql 代碼中缺少分號;這對于 Python 在此上下文中如何與 Oracle 交互是必要的。我在 Oracle SQL Developer 上嘗試時添加了一個分號以進行測試,但在為 .sql 文件刪除時它不會導致問題。
查看完整描述

1 回答

?
長風秋雁

TA貢獻1757條經驗 獲得超7個贊

找到答案:簡而言之,錯誤類型錯誤。

我的代碼將 datetime.date 傳遞給需要字符串的 SQL to_date 轉換。


查看完整回答
反對 回復 2021-11-23
  • 1 回答
  • 0 關注
  • 390 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號