इस SQL सर्वर स्निपेट के समतुल्य PLSQL (ओरेकल) क्या है?पीएलएसक्यूएल जेडीबीसी: अंतिम पंक्ति आईडी कैसे प्राप्त करें?
BEGIN TRAN
INSERT INTO mytable(content) VALUES ("test") -- assume there's an ID column that is autoincrement
SELECT @@IDENTITY
COMMIT TRAN
सी # में, आप myCommand.ExecuteScalar() फोन नई पंक्ति की आईडी पुनः प्राप्त कर सकते हैं।
मैं ओरेकल में एक नई पंक्ति कैसे डाल सकता हूं, और जेडीबीसी को नई आईडी की एक प्रति प्राप्त हो सकती है?
संपादित करें: बलुससी ने एक बहुत अच्छा प्रारंभिक बिंदु प्रदान किया। किसी कारण से जेडीबीसी नामित पैरामीटर बाध्यकारी पसंद नहीं है। यह "गलत सेट या पंजीकृत पैरामीटर" SQLException देता है। ये क्यों हो रहा है?
OracleConnection conn = getAppConnection();
String q = "BEGIN INSERT INTO tb (id) values (claim_seq.nextval) returning id into :newId; end;" ;
CallableStatement cs = (OracleCallableStatement) conn.prepareCall(q);
cs.registerOutParameter("newId", OracleTypes.NUMBER);
cs.execute();
int newId = cs.getInt("newId");
आईडी फ़ील्ड + 1 के अधिकतम का चयन करें यहाँ एक टुकड़ा है? – Aren
@Aren - 'max (n) + 1' स्केल नहीं करता है और बहु-उपयोगकर्ता वातावरण में काम नहीं करता है। – APC