दिलचस्प पोस्ट
मैं एसटीआईटी इकाई फ्रेमवर्क द्वारा उत्पन्न कैसे देखूं? Node.js में SQL इंजेक्शन की रोकथाम एंड्रॉइड: कस्टम दृश्य के साथ AppWidget काम नहीं कर रहा है किसी अन्य विकल्प के चयन के आधार पर चयन विकल्प कैसे परिवर्तित करें? एक से अधिक सीएसएस / जेएस फ़ाइलों को जोड़ना और जोड़ना जावास्क्रिप्ट / jQuery का उपयोग कर फ़ाइल डाउनलोड करें JQuery में चालू () में चालू () चालू करना jquery attr ('चेक', 'चेक') केवल एक बार काम करता है मुझे एक अरेंज ऑफ़ वेरियंट्स के लिए एक रेंज प्रदान करने में समस्या क्यों हो रही है? कैसे पीएचपी की ईरेगी को प्रीजी_मैच में बदलना है मैं कैसे नियंत्रण कर सकता हूं कि एमैक्स बैकअप फ़ाइलों को कैसे बना देता है? Math.random () बनाम रैंडम। जावास्क्रिप्ट के जरिए मैं वेबकिट सीएसएस एनीमेशन को फिर से ट्रिगर कैसे करूं? एंड्रॉइड समर्थन वेब पर वेब देखें क्या है? प्रकार पैरामीटर में क्रॉस संदर्भ

तालिका नाम सेट करने के लिए तैयार वक्तव्य का उपयोग करना

मैं से डेटा का चयन करने के लिए एक टेबल नाम सेट करने के लिए तैयार बयान का उपयोग करने की कोशिश कर रहा हूं, लेकिन जब मैं क्वेरी निष्पादित करता हूं तो मुझे एक त्रुटि मिलती रहती है

त्रुटि और नमूना कोड नीचे प्रदर्शित किया गया है

[Microsoft][ODBC Microsoft Access Driver] Parameter 'Pa_RaM000' specified where a table name is required. private String query1 = "SELECT plantID, edrman, plant, vaxnode FROM [?]"; //?=date public Execute(String reportDate){ try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection conn = DriverManager.getConnection(Display.DB_MERC); PreparedStatement st = conn.prepareStatement(query1); st.setString(1, reportDate); ResultSet rs = st.executeQuery(); 

क्या हो सकता है इस पर कोई विचार?

वेब के समाधान से एकत्रित समाधान "तालिका नाम सेट करने के लिए तैयार वक्तव्य का उपयोग करना"

एक तालिका नाम का पैरामीटर के रूप में उपयोग नहीं किया जा सकता यह मुश्किल कोडित होना चाहिए। तो आप ऐसा कुछ कर सकते हैं:

 private String query1 = "SELECT plantID, edrman, plant, vaxnode FROM [" + reportDate + "?]"; 

यह एक वैकल्पिक हल के साथ तकनीकी रूप से संभव है, लेकिन बहुत खराब अभ्यास।

 String sql = "IF ? = 99\n"; sql += "SELECT * FROM first_table\n"; sql += "ELSE\n"; sql += "SELECT * FROM second_table"; PreparedStatement ps = con.prepareStatement(sql); 

और फिर जब आप first_table से चयन करना चाहते हैं तो आप पैरामीटर को सेट करते हैं

 ps.setInt(1, 99); 

या यदि नहीं, तो आप इसे कुछ और करने के लिए सेट करें

जैसा कि कई लोगों ने कहा है, आप किसी तालिका के नाम के लिए एक स्टेटमेंट पैरामीटर का उपयोग नहीं कर सकते, केवल हालत के भाग के रूप में चर के लिए।

इस तथ्य के आधार पर आपके पास कम से कम दो तालिका नामों के साथ एक चर तालिका नाम है, शायद यह एक विधि बनाने के लिए सबसे अच्छा होगा जो आपके द्वारा संग्रहीत इकाई लेता है और एक तैयार कथन वापस करता है

 PreparedStatement p = createStatement(table); 

मुझे यकीन नहीं है कि आप तालिका का नाम निर्दिष्ट करने के लिए तैयार किए गए स्थान का उपयोग कर सकते हैं, बस कुछ फ़ील्ड के मान वैसे भी, आप एक ही प्रश्न की कोशिश कर सकते हैं लेकिन, कोष्ठक के बिना:

 "SELECT plantID, edrman, plant, vaxnode FROM ?" 
 String table="pass"; String st="select * from " + table + " "; PreparedStatement ps=con.prepareStatement(st); ResultSet rs = ps.executeQuery(); 

तालिका के नाम को एक चर के रूप में पास करने का एक तरीका है

स्ट्रिंग नेमऑफ़टेबल = "test.Employee";

स्ट्रिंग Fquery = "SELECT * FROM" + NameOfTable + "जहां हो गया = 'नहीं'";

ध्यान दें: एफओआर से और बाद में "और बीच" और जहां कीवर्ड के बीच एक स्थान होना चाहिए