0
Angesichts der Code oben, wie kann ich die ID der Zeile in die Datenbank eingefügt. Ich benutze C++ und Oracle OCCI-Schnittstelle:Oracle erhalten zuletzt eingefügten Zeile ID mit OCCI und C++
std::stringstream sqlStream("");
sqlStream << "INSERT INTO MYTABLE (COL1, COL2, COL3) VALUES (1, 2, 3) RETURNING ID INTO :my_id_param";
std::string sql(sqlStream.str());
std::cout << sql << std::endl;
std::unique_ptr<oracle::occi::Statement> stmt(connection->createStatement());
stmt->execute(sql.c_str());
//??? How can I access here the my_id_param ?
Vielen Dank für Ihre Hilfe.
Sie fügen keine Werte in eine 'ID'-Spalte ein. Wie generieren Sie den zurückzugebenden Wert (oder erwarten Sie einen "NULL" -Wert)? – MT0
ID ist ein Trigger, der Werte von einem SEQUENCE erzeugt: CREATE OR REPLACE TRIGGER MyTrigger \t \t \t BEFORE INSERT ON MYTABLE \t \t \t FÜR JEDE ZEILE \t \t \t BEGIN \t \t \t \t SELECT MYSEQ.NEXTVAL INTO: NEW .ID VON DUAL; \t \t \t END MYTRIG; ''. Funktioniert gut - für jeden INSERT wird die ID automatisch generiert. – Mendes