2014-09-12 21 views
0

我執行查詢執行查詢,無法在java中

SELECT 
    UNIQUE PXCID,SNCID,FREQUENCY 
FROM 
    AFFECTEDXCS 
WHERE 
    PTPNAME IN ('AM2125A-1-14-LINEIN','AM2125A-1-15-LINEOUT','CWR-7-14-CLS2') 
AND FREQUENCY='9170' and NENAME='CP0MP1-121-N2-SITE3' 
ORDER BY SNCID; 

從SQL Developer中,它帶給我的價值排?

相同的查詢我試圖執行它從java與代碼。

String query = DBStatements.PXCID_LIST; 
     Object[] param = new Object[3]; 
     param[0]="AM2125A-1-14-LINEIN,AM2125A-1-15-LINEOUT,CWR-7-14-CLS2"; 
     param[1]=frequency; 
     param[2]=nodelabel; 
List<Map<String,Object>> returnList = eqmqueryexec.executeQuery(EQMDataSource.OTN, "0", query, param); 
     Iterator<Map<String,Object>> iter = returnList.iterator(); 
     logger.debug("iterator bolean length"+iter.hasNext()); 

我得到的「迭代器布爾長度」爲false。這意味着查詢不能正確執行?

+0

或者它返回一個長度列表:0 – vikingsteve 2014-09-12 10:38:43

+0

是的。返回列表長度爲0 – user3924682 2014-09-12 10:46:27

+0

鑑於名爲'EQMDataSource.OTN'的查詢文本正在使用像'?'這樣的綁定參數,那麼是的,如果返回空列表,則很可能正確運行。你可以發佈'EQMDataSource.OTN'給我們看嗎? – vikingsteve 2014-09-12 12:02:50

回答

0

您需要用IN子句綁定的每個參數都應該是單個問號而不是單個問號。大關整個IN子句..喜歡

SELECT * FROM WHERE EMP_ID IN(?,?,?,?,?)

,你必須綁定變量分別爲每個員工PARAM ..