2013-06-22 58 views
0

我有一個通過JDBC連接到Google Cloud SQL實例的Google Apps腳本。我正在使用預準備語句,並且在嘗試設置NULL值時遇到了麻煩。要設置任何其他類型的值,你只需要:使用JDBC Prepared Statement setNull()函數

preparedStatement.setFloat(3, myFloatVar); 

但我不能讓setNull()工作。它應該將Java數據類型作爲參數。 Docs Link

我已經試過如下:

preparedStatement.setNull(4,"java.sql.Types.DECIMAL"); 
    preparedStatement.setNull(4,java.sql.Types.DECIMAL); <-- This is how you would do it in Java, I believe 
    preparedStatement.setNull(4); 
    preparedStatement.setNull(4,null); 
    preparedStatement.setNull(4,"null"); 

它會要麼給我一個「服務器錯誤,請有點稍後重試」,或類似「無法找到方法的東西(類)(class)setNull(number,null)「取決於我的嘗試。

所以我剛剛通過設置爲0而不是null來解決它,但它會很高興有這個選項!

回答

0

從我所瞭解的documentation中,期望的第二個參數是一個整數。與其他服務一樣,JDBC服務應該有一個「ENUM」列出選項,如ChartsContent服務。

我想這是一個很好的候選人的問題報告。如果您打開Apps Script issue tracker,請點擊評論中的鏈接。

現在,由於缺乏適當的ENUM,你應該嘗試不同的整數。我想你會有一些嘗試的幸運。例如

preparedStatement.setNull(4, 1); 
//or preparedStatement.setNull(4, 2); //and so on.. 
相關問題