Re: [cx-oracle-users] an old question
Brought to you by:
atuining
From: Chris G. <chr...@to...> - 2013-04-30 08:50:55
|
Hi - I've been following the discussion in this thread and have to say I think the objective of the whole exercise is flawed. You seem to be trying to write a set of wrappers to make Oracle appear to behave in the same way as other RDBMS, and I think that isn't realistic. To get the best out of any database you need to exploit its features and avoid its "quirks". Oracle's features include returning a data-sets as a REFCURSOR where you don't know in advance how many records are in the set - you and Oracle only find that out when you fetch past the last row. Similarly, if you're talking of deleting a million rows and trying to return all the deleted data into a collection of some sort that gets passed back to the invoker, what are you going to do with that data? It sounds like you'd be better off trying a "SELECT .. FOR UPDATE" and then deleting each row - inefficient in Oracle, but that seems to be of secondary importance. I really think the further you go with this, the more problems you're likely to encounter and you're never going to get any decent performance out of what is a very expensive RDBMS. C On 30 April 2013 09:17, Glyph <gl...@tw...> wrote: > > On Apr 30, 2013, at 1:04 AM, Mark Harrison <mh...@pi...> wrote: > > On 4/30/13 12:21 AM, Glyph wrote: > > As I keep pointing out: > > Currently, I'm doing this with host variables, but that's a limited > solution [...] > > > You're trying but apparent failing to make your point... > > I tried helping you out earlier, but your response left me not > caring a lot whether or not you solved your problem or not. > > > I do appreciate you taking the time to help, even if your answer wasn't > directly useful to me. I realize what I'm looking for is a bit esoteric. > "What you are trying to do is impossible" is a totally acceptable answer - > I am really just trying to understand *why* Oracle makes this impossible. > > The database-specificity of cursor.var() makes sense to me, idiomatically, > but the restricted size of query results seems odd. For example, if I want > to 'delete...returning...into...' a million rows, rather than the default > allowed ~1000 or so, how can I do that? Would a pipelined procedure with > PIPE ROW address this problem, and the general expectation is just that I'd > be able to put such a procedure into my schema? > > -glyph > > > > ------------------------------------------------------------------------------ > Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET > Get 100% visibility into your production application - at no cost. > Code-level diagnostics for performance bottlenecks with <2% overhead > Download for free and get started troubleshooting in minutes. > http://p.sf.net/sfu/appdyn_d2d_ap1 > _______________________________________________ > cx-oracle-users mailing list > cx-...@li... > https://lists.sourceforge.net/lists/listinfo/cx-oracle-users > > |