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

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

用odbc往oracle插入記錄,excuteUpdate返回1,數據庫里記錄沒有增加。

用odbc往oracle插入記錄,excuteUpdate返回1,數據庫里記錄沒有增加。

慕田峪4524236 2018-08-16 08:19:56
往用odbc插入數據庫,從oracle里能查到最近執行的sql,但是數據庫記錄沒增加。而且最近執行的那條SQL:INSERT into "wchong_test" ("name","age")values(:1,:2),單獨在客戶端執行這條SQL會報錯:[Err] ORA-01008: not all variables bound。
查看完整描述

2 回答

?
郎朗坤

TA貢獻1921條經驗 獲得超9個贊

如果executeUpdate返回1數據庫沒有記錄,那我只能想到事務了,確認事務有成功提交。

INSERT into "wchong_test" ("name","age")values(:1,:2)

:1/:2 感覺是命名參數啊,類似于spring jdbc中的Named Parameter,很顯示你直接執行這條SQL是有問題的:1這不是一個正確數據類型,要使用':1'引號括起來。


查看完整回答
反對 回復 2018-08-26
?
肥皂起泡泡

TA貢獻1829條經驗 獲得超6個贊

可能是connection的自動提交被禁用了,如

conn.setAutoCommit(false);

可以在executeUpdate增加下面的語句,然后看數據庫中是否有記錄產生。

conn.commit();

另外,oracle看到的帶:1 :2的語句,很明顯是在java端使用了PreparedStatement,因此這個語句在oracle中是不能直接執行的,可以從v$sql_bind_capture中使用sql_id條件,查找具體綁定變量的值。


查看完整回答
反對 回復 2018-08-26
  • 2 回答
  • 0 關注
  • 1048 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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