2013-06-22 59 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.. 
相关问题