我正在使用 JDBC 通过 Matlab 访问 postgresql 数据库,并且在尝试插入我宁愿存储为数组而不是单个值的值数组时挂断了。我正在使用的 Matlab 代码如下:
insertCommand = 'INSERT INTO neuron (classifier_id, threshold, weights, neuron_num) VALUES (?,?,?,?)';
statementObject = dbhandle.prepareStatement(insertCommand);
statementObject.setObject(1,1);
statementObject.setObject(2,output_thresholds(1));
statementObject.setArray(3,dbHandle.createArrayOf('"float8"',outputnodes(1,:)));
statementObject.setObject(4,1);
statementObject.execute;
close(statementObject);
除了处理数组的行之外,一切都正常运行。对象 outputnodes 是一个 <5x23> 双矩阵,所以我试图将第一个 <1x23> 放入我的表中。
我已经为'"float8"'
createArrayof 调用的一部分尝试了几种不同的名称和引号组合,但我总是得到这个错误:
??? Java exception occurred:
org.postgresql.util.PSQLException: Unable to find server array type for provided name "float8".
at org.postgresql.jdbc4.AbstractJdbc4Connection.createArrayOf(AbstractJdbc4Connection.java:82)
at org.postgresql.jdbc4.Jdbc4Connection.createArrayOf(Jdbc4Connection.java:19)
Error in ==> Databasetest at 22
statementObject.setArray(3,dbHandle.createArrayOf('"float8"',outputnodes(1,:)));