त्रिगुट ऑपरेटर सूचकांक पर में या बाहर पैरामीटर लापता के कारण [जैस्पर रिपोर्ट]

वोट
0

मैं में एक साधारण क्वेरी लिखा है <queryString>एक जैस्पर रिपोर्ट के अंदर टैग

select s.BOARD_NUMBER, s.LOCATION_NAME, s.SHELF_NO, s.REGION_NAME, s.SERIAL_NUMBER, s.CARD_DISPLAYTYPE, s.CITY_NAME, s.PLUGGED_DATE, s.ROUTER_NAME
                $P{searchMainCardType} == CPM ? from TM_PROCESSOR_CARD_INFO_VIEW s : from TM_DAUGHTER_CARD_INFO_VIEW

इस क्वेरी एक Oracle डेटाबेस से संबंध के साथ iReport में चलाया जाता है। मैं क्वेरी का परीक्षण किया है

select s.BOARD_NUMBER, s.LOCATION_NAME, s.SHELF_NO, s.REGION_NAME, s.SERIAL_NUMBER, s.CARD_DISPLAYTYPE, s.CITY_NAME, s.PLUGGED_DATE, s.ROUTER_NAME
                from TM_PROCESSOR_CARD_INFO_VIEW s

यह अच्छी तरह से काम करता है, लेकिन मैं जब मैं पहली क्वेरी में त्रिगुट ऑपरेटर का उपयोग त्रुटि मिलती है

Error filling print... Error executing SQL statement for : unpluggedSwitchesHaes 
net.sf.jasperreports.engine.JRException: Error executing SQL statement for : unpluggedSwitchesHaes      at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createDatasource(JRJdbcQueryExecuter.java:240)      at net.sf.jasperreports.engine.fill.JRFillDataset.createQueryDatasource(JRFillDataset.java:1114)      at net.sf.jasperreports.engine.fill.JRFillDataset.initDatasource(JRFillDataset.java:691)      at net.sf.jasperreports.engine.fill.JRBaseFiller.setParameters(JRBaseFiller.java:1314)      at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:931)      at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:873)      at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:87)      at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:287)      at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:760)      at com.jaspersoft.ireport.designer.compiler.IReportCompiler.run(IReportCompiler.java:891)      at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572)      at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997)  Caused by: java.sql.SQLException: Missing IN or OUT parameter at index:: 2      at oracle.jdbc.driver.OraclePreparedStatement.processCompletedBindRow(OraclePreparedStatement.java:2076)      at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:4790)      at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:4845)      at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1501)      at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createDatasource(JRJdbcQueryExecuter.java:233)      ... 11 more

मैंने क्या गल्त किया है ?

धन्यवाद। 

09/10/2019 को 12:57
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


1 जवाब

वोट
1

आप क्वेरी स्ट्रिंग में भाषाओं का मिश्रण नहीं कर सकते। लेकिन आप यह घोषणा करते हैं cardTableडिफ़ॉल्ट मान अभिव्यक्ति निम्नलिखित के साथ पैरामीटर:

( “CPM”.equals($P{searchMainCardType}) 
? “TM_PROCESSOR_CARD_INFO_VIEW”
: “TM_DAUGHTER_CARD_INFO_VIEW”
) + “ a”

तो अगर आप क्वेरी स्ट्रिंग में उपयोग कर सकते हैं:

SELECT s.BOARD_NUMBER
  FROM $P!{cardTable}

विस्मयादिबोधक चिह्न नोट !, उस तालिका उर्फ सहित एक स्ट्रिंग प्रतिस्थापन के लिए बाध्य करेगा sबजाय मूल्य बचने और placeholding।

09/10/2019 को 14:05
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more