अंदर तैयार बयान पैरामीटर मैं एक मेज जो एक संरचना के साथ एक डेटा स्तंभ निम्न के समान है है डेटा के अंदर क्वेरी के बाद psql कंसोल से पूरी तरह से काम करता है:JDBC json
SELECT id, data FROM table_name WHERE data->'objects' @> '[{"id": "id1"}]'
लेकिन मैं इस JDBC ड्राइवर पर एक तैयार बयान के रूप में काम करने के लिए नहीं मिल सकता है। आईडी के लिए मूल्य एक पैरामीटर होना चाहिए, तो मैं स्ट्रिंग कि connection.prepareStatement(query);
को पारित कर दिया है के रूप में इस की कोशिश की:
org.postgresql.util.PSQLException: The column index is out of range: 1, number of columns: 0.
जब मैं:
"SELECT id, data FROM table_name WHERE data->'objects' @> '[{\"id\": ?}]'"
यहाँ
जब मैं तर्क स्थापित करने के लिए मैं इस अपवाद कोशिश कोशिश निम्नलिखित तर्क के किसी भी ठीक से सेट है:
"SELECT id, data FROM table_name WHERE data->'objects' @> [{\"id\": ?}]"
"SELECT id, data FROM table_name WHERE data->'objects' @> [{'id': ?}]"
लेकिन परिणाम स्पष्ट रूप से उचित रूप से स्वरूपित क्वेरी नहीं है:
+०१२३५१६४१०६१SELECT id, data FROM table_name WHERE data->'objects' @> [{"id": 'id1'}]
SELECT id, data FROM table_name WHERE data->'objects' @> [{'id': 'id1'}]
दोनों ही मामलों में मैं अपवाद निम्नलिखित हो:
org.postgresql.util.PSQLException: ERROR: syntax error at or near "["
JSON के अंदर एक पैरामीटर सेट करने के लिए सही सिंटैक्स क्या है? मैं PostgreSQL 9.5
एसक्यूएल में स्ट्रिंग्स एकल उद्धरणों द्वारा सीमित हैं, डबल कोट्स – Leo
आईडी का चयन करें, table_name से डेटा कहां डेटा -> 'ऑब्जेक्ट्स' @>? कहा पे ? है [{"id": "id1"}] – Leo
यह सुनिश्चित नहीं है कि आप किसके लिए हैं, लेकिन उन छोड़े गए हैं जावा स्ट्रिंग्स को 'कनेक्शन.prepareStatement' – mohamnag