Opened 15 years ago

Closed 13 years ago

Last modified 13 years ago

#11706 closed (fixed)

Use of RETURNING should be optional

Reported by: Matt Boersma Owned by: nobody
Component: Database layer (models, ORM) Version: 1.1
Severity: Keywords: Oracle oracle RETURNING
Cc: Erin Kelly Triage Stage: Accepted
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description (last modified by Matt Boersma)

See closed ticket #10473. The "RETURNING...INTO" SQL construct is supported in Oracle versions 9i and later, but with some significant restrictions:

Oracle Error :: ORA-22816
unsupported feature with RETURNING clause

Cause
RETURNING clause is currently not supported for object type
columns, LONG columns, remote tables, INSERT with subquery, and
INSTEAD OF Triggers.

Action
Use separate select statement to get the values.

The use of RETURNING INTO isn't mandatory, so perhaps we could refactor it so a settings.py option turns it off. Our use case is an in-house application that has several INSTEAD OF triggers.

Change History (7)

comment:1 by Alex Gaynor, 15 years ago

Triage Stage: UnreviewedAccepted

comment:2 by Malcolm Tredinnick, 15 years ago

Agree that it would be nice to keep supporting 9i. Given that we already do some version-specific mods for Oracle (regex_lookup_*), it'd be nice to do the same thing for "RETURNING INTO".

comment:3 by Matt Boersma, 15 years ago

Description: modified (diff)
Summary: Use of RETURNING means Oracle 9i is no longer supportedUse of RETURNING should be optional

comment:4 by Matt Boersma, 15 years ago

Description: modified (diff)

comment:5 by Russell Keith-Magee, 14 years ago

milestone: 1.21.3

Not critical for 1.2

comment:6 by Erin Kelly, 13 years ago

Resolution: fixed
Status: newclosed

(In [14765]) Fixed #11706: Added an Oracle connection option to disable the use of RETURNING INTO in INSERT statements.

comment:7 by Jacob, 13 years ago

milestone: 1.3

Milestone 1.3 deleted

Note: See TracTickets for help on using tickets.
Back to Top