Is is possible to implement the following behavior in SQLAlchemy against an Oracle database? (Bulk inserts returning PK IDs generated by trigger/sequence on PK column in database)
#database ddl ############ DROP TABLE INS_RET_TEST; CREATE TABLE INS_RET_TEST (ID NUMBER NOT NULL ENABLE, COL1 NUMBER NOT NULL ENABLE, CONSTRAINT INS_RET_TEST_PK PRIMARY KEY (ID) USING INDEX); DROP SEQUENCE INS_RET_TEST_SEQ; CREATE SEQUENCE INS_RET_TEST_SEQ MINVALUE 1 MAXVALUE 999999999 INCREMENT BY 1 START WITH 1; CREATE OR REPLACE TRIGGER INS_RET_TEST_TRG BEFORE INSERT ON INS_RET_TEST FOR EACH ROW BEGIN <<COLUMN_SEQUENCES>> BEGIN IF INSERTING AND :NEW.ID IS NULL THEN SELECT INS_RET_TEST_SEQ.NEXTVAL INTO :NEW.ID FROM SYS.DUAL; END IF; END COLUMN_SEQUENCES; END; / ALTER TRIGGER INS_RET_TEST_TRG ENABLE; #Python ###### #!/usr/bin/env python import cx_Oracle import time db = cx_Oracle.connect(dsn="connect_info) cur = db.cursor() data = [[1],[2],[3],[4],[5]] IdArr = cur.var(int, arraysize = len(data)) cur.setinputsizes(None, IdArr) cur.executemany("insert into ins_ret_test(col1) values (:1) returning id into :2", data) for ix, datum in enumerate(data): print("Data: " , datum[0], "ID: ", IdArr.getvalue(ix)) If so, can someone point me to the documentation or provide an example? I've been unable to find anything. -- SQLAlchemy - The Python SQL Toolkit and Object Relational Mapper http://www.sqlalchemy.org/ To post example code, please provide an MCVE: Minimal, Complete, and Verifiable Example. See http://stackoverflow.com/help/mcve for a full description. --- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sqlalchemy+unsubscr...@googlegroups.com. To post to this group, send email to sqlalchemy@googlegroups.com. Visit this group at https://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.