Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

अस्पष्ट MySql कनेक्टर/जे त्रुटि संदेश - java.sql.SQLException:बू {विस्मयादिबोधक चिह्न}

जैसा कि प्रश्न के अद्यतन में कहा गया है, यह आमतौर पर कॉल करने योग्य स्टेटमेंट का गलत तरीके से उपयोग करने के कारण होता है। उदाहरण के लिए:

संग्रहित प्रक्रिया 2 मापदंडों का उपयोग करती है, एक अंदर और एक बाहर:

CREATE DEFINER=`example`@`localhost` PROCEDURE `sp_getSensorLocation`(IN in_id VARCHAR(128), OUT loc VARCHAR(128))
BEGIN
SELECT LOCATION INTO loc FROM table.SENSORS
WHERE ID = in_id;
END

लेकिन इसके लिए कॉल केवल 1 का उपयोग करती है:

private String getSensorLocation(String sensorID) {    
    String location = "";
    Connection c = dbr.getConnection();
    String prepStatement = "{ call sp_getSensorLocation(?) } ";
    try {
         callableStatement cs = c.prepareCall(prepStatement);
         cs.setString(1, sensorID);
         ResultSet rs = cs.executeQuery();
         if (rs.next()) {
            location = rs.getString(1);
            }
         } catch (SQLException ex) {
                LOG.error("Error:", ex);
         }        
    dbr.closeConnection(c, rs, cs);
    return location;
}

जब सही कोड वास्तव में हो:

private String getSensorLocation(String sensorID) {
    String location = "";
    Connection c = dbr.getConnection();
    String prepStatement = "{ call sp_getSensorLocation(?, ?) } ";
    try {
        CallableStatement cs = c.prepareCall(prepStatement);
        cs.setString(1, sensorID);
        cs.execute();
        location = cs.getString(2);            
    } catch (SQLException ex) {
        LOG.error("Error:", ex);
    }
    dbr.closeConnection(c, rs, cs);
    return location;
}

ध्यान दें कि मैं भी cs.execute में बदल गया हूं क्योंकि मुझे परिणाम सेट की उम्मीद नहीं है और इसके साथ भी समस्याएं होंगी (उदाहरण किसी और के कोड से लिया गया है जिसे मैं ठीक कर रहा हूं, जॉय -_-)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एसक्यूएल क्वेरी में बाएं जॉइन के क्रम को कैसे क्रमबद्ध करें?

  2. JSON_ARRAYAGG () - MySQL में एक क्वेरी की पंक्तियों से एक JSON सरणी बनाएं

  3. लेनदेन के बिना अजगर-mysqldb

  4. mySQL क्वेरी एकाधिक - त्रुटि देता है mysql_fetch_array

  5. MySql संग्रहीत कार्यविधि लूप कर्सर - सिंटैक्स त्रुटि