後,我有一個查詢ResultSet的到來爲空執行查詢
SELECT instance_guid FROM service_instances WHERE service_template_guid='E578F99360A86E4EE043C28DE50A1D84' AND service_family_name='TEST'
直接執行該返回我
4FEFDE7671A760A8DC8FC63CFBFC8316
F2F9DF641D8E2CACC03175A7A628D51D
現在我從JDBC嘗試相同的代碼。
PreparedStatement ps = null;
ResultSet rs = null;
try {
conn = executionContext.getConnection();
if (conn != null) {
ps = (PreparedStatement)conn.prepareStatement(query);
if (params == null) params = new Object[0];
for (int i=0;i<params.length;i++) {
if (params[i] instanceof Integer) {
ps.setInt(i+1, ((Integer)params[i]).intValue());
} else if (params[i] instanceof java.util.Date) {
((PreparedStatement)ps).setDATE(i+1, new oracle.sql.DATE((new java.sql.Timestamp(((Date)params[i]).getTime()))));
//ps.setObject(i+1, new oracle.sql.DATE(new Time(((Date)params[i]).getTime())));
} else {
if (params[i] == null) params[i] = "";
ps.setString(i+1, params[i].toString());
}
}
rs = ps.executeQuery();
我看到params[0] =E578F99360A86E4EE043C28DE50A1D84 and params[1]=TEST
但結果集是空的,沒有得到result.I調試,但沒有太大的幫助?
你能不能讓我知道我在試試嗎?
在java中它的定義如下
final static private String INSTANCE_GUID_BY_TEMPLATE_GUID =
"SELECT instance_guid FROM service_instances WHERE service_template_guid=? AND service_family_name=? "
SERVICE_FAMILY_NAME NOT NULL VARCHAR2(256)
SERVICE_TEMPLATE_GUID NOT NULL RAW(16 BYTE)
假設'query'字符串確實有正確的sql語句。 – user75ponic
查詢字符串具有相同的語句。我試圖在db中使用相同的語句,並將參數替換爲 – constantlearner
,向我們顯示查詢字符串,因爲它是在Java內部定義的。 – Woot4Moo