cx-oracle-users Mailing List for cx_Oracle (Page 15)
Brought to you by:
atuining
You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(5) |
Aug
(9) |
Sep
(8) |
Oct
(12) |
Nov
(4) |
Dec
(8) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(15) |
Feb
(12) |
Mar
(11) |
Apr
(5) |
May
(7) |
Jun
(8) |
Jul
(12) |
Aug
(2) |
Sep
(14) |
Oct
(17) |
Nov
(20) |
Dec
(3) |
2005 |
Jan
(16) |
Feb
(9) |
Mar
(22) |
Apr
(21) |
May
(73) |
Jun
(16) |
Jul
(15) |
Aug
(10) |
Sep
(32) |
Oct
(35) |
Nov
(22) |
Dec
(13) |
2006 |
Jan
(42) |
Feb
(36) |
Mar
(13) |
Apr
(18) |
May
(8) |
Jun
(17) |
Jul
(24) |
Aug
(30) |
Sep
(35) |
Oct
(33) |
Nov
(33) |
Dec
(11) |
2007 |
Jan
(35) |
Feb
(31) |
Mar
(35) |
Apr
(64) |
May
(38) |
Jun
(12) |
Jul
(18) |
Aug
(34) |
Sep
(75) |
Oct
(29) |
Nov
(51) |
Dec
(11) |
2008 |
Jan
(27) |
Feb
(46) |
Mar
(48) |
Apr
(36) |
May
(59) |
Jun
(42) |
Jul
(25) |
Aug
(34) |
Sep
(57) |
Oct
(97) |
Nov
(59) |
Dec
(57) |
2009 |
Jan
(48) |
Feb
(48) |
Mar
(45) |
Apr
(24) |
May
(46) |
Jun
(52) |
Jul
(52) |
Aug
(37) |
Sep
(27) |
Oct
(40) |
Nov
(37) |
Dec
(13) |
2010 |
Jan
(16) |
Feb
(9) |
Mar
(24) |
Apr
(6) |
May
(27) |
Jun
(28) |
Jul
(60) |
Aug
(16) |
Sep
(33) |
Oct
(20) |
Nov
(39) |
Dec
(30) |
2011 |
Jan
(23) |
Feb
(43) |
Mar
(16) |
Apr
(29) |
May
(23) |
Jun
(16) |
Jul
(10) |
Aug
(8) |
Sep
(18) |
Oct
(42) |
Nov
(26) |
Dec
(20) |
2012 |
Jan
(17) |
Feb
(27) |
Mar
|
Apr
(20) |
May
(18) |
Jun
(7) |
Jul
(24) |
Aug
(21) |
Sep
(23) |
Oct
(18) |
Nov
(12) |
Dec
(5) |
2013 |
Jan
(14) |
Feb
(10) |
Mar
(20) |
Apr
(65) |
May
(3) |
Jun
(8) |
Jul
(6) |
Aug
(3) |
Sep
|
Oct
(3) |
Nov
(28) |
Dec
(3) |
2014 |
Jan
(3) |
Feb
(9) |
Mar
(4) |
Apr
(7) |
May
(20) |
Jun
(2) |
Jul
(20) |
Aug
(7) |
Sep
(11) |
Oct
(8) |
Nov
(6) |
Dec
(12) |
2015 |
Jan
(16) |
Feb
(10) |
Mar
(14) |
Apr
(8) |
May
|
Jun
(8) |
Jul
(15) |
Aug
(7) |
Sep
(1) |
Oct
(33) |
Nov
(8) |
Dec
(5) |
2016 |
Jan
(18) |
Feb
(12) |
Mar
(6) |
Apr
(14) |
May
(5) |
Jun
(3) |
Jul
|
Aug
(21) |
Sep
|
Oct
(15) |
Nov
(8) |
Dec
|
2017 |
Jan
|
Feb
(14) |
Mar
(21) |
Apr
(9) |
May
(6) |
Jun
(11) |
Jul
(23) |
Aug
(6) |
Sep
(5) |
Oct
(7) |
Nov
(1) |
Dec
(1) |
2018 |
Jan
|
Feb
|
Mar
(16) |
Apr
(2) |
May
(1) |
Jun
|
Jul
(2) |
Aug
|
Sep
(2) |
Oct
|
Nov
|
Dec
|
2019 |
Jan
(2) |
Feb
(3) |
Mar
(1) |
Apr
(1) |
May
|
Jun
|
Jul
(2) |
Aug
(1) |
Sep
(2) |
Oct
|
Nov
|
Dec
(1) |
2020 |
Jan
|
Feb
(4) |
Mar
|
Apr
|
May
(2) |
Jun
(1) |
Jul
(4) |
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
(3) |
2021 |
Jan
|
Feb
(5) |
Mar
|
Apr
(7) |
May
(6) |
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
2022 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2023 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Waldemar O. <wal...@gm...> - 2015-04-29 18:55:34
|
It means that either you do not have Oracle client installed or there is mismatch in 64/32 bittnes (if it is even a word). For example you python is 64 and Oracle client 32 or other way around. Waldemar On Tue, Apr 28, 2015 at 2:04 PM, Solomon, Scott <Sco...@sr...> wrote: > I had a working set of Gensim code. Then I was migrated from a 32-bit > windows computer to a 64-bit Windows computer. I reinstalled anaconda with > spyder and gensim onto the new 64-bit computer. But now I get the attached > error. (Attached picture.) > > File "<ipython-input-7-8d5a0df1b536>", line 1, in <module> >> runfile('C:/Users/Solomons/Documents/Python Scripts/blob similarity >> against file of phrases using ANC Corpus.py', >> wdir='C:/Users/Solomons/Documents/Python Scripts') >> > > >> ImportError: DLL load failed: The specified module could not be found. > > > Line 1 in my code is this: > > # -*- coding: utf-8 -*- > > > What could be my issue? > > Thanks in advance for your prompt support! > > ---------- > Scott Solomon > Data Mining Analyst > SRA International > 202-307-6792 > Sco...@sr... > Sco...@oj... > > > ------------------------------------------------------------------------------ > One dashboard for servers and applications across Physical-Virtual-Cloud > Widest out-of-the-box monitoring support with 50+ applications > Performance metrics, stats and reports that give you Actionable Insights > Deep dive visibility with transaction tracing using APM Insight. > http://ad.doubleclick.net/ddm/clk/290420510;117567292;y > _______________________________________________ > cx-oracle-users mailing list > cx-...@li... > https://lists.sourceforge.net/lists/listinfo/cx-oracle-users > > |
From: Shai B. <sh...@pl...> - 2015-04-29 16:51:48
|
I was referring to Oracle installation, not cx_Oracle. You need Oracle client libraries. They are not included with cx_Oracle. On Wednesday 29 April 2015 15:58:45 Solomon, Scott wrote: > Per this file it seems all the cx_oracle files were installed in Anaconda; > where Spyder is looking. > > > ---------- > Scott Solomon > Data Mining Analyst > SRA International > 202-307-6792 > Sco...@sr... > Sco...@oj... > > ________________________________________ > From: Shai Berger [sh...@pl...] > Sent: Wednesday, April 29, 2015 1:54 AM > To: cx-...@li... > Subject: [cx-oracle-users] DLL Error (was Re: DDL Error) > > DDL is about schema changes > DLL is about loading libraries > > In your case, my guess is that you haven't installed the Oracle client > libraries (or, if you have, your Python process doesn't know where to find > them). > > Shai. > > On Tuesday 28 April 2015 23:04:40 Solomon, Scott wrote: > > I had a working set of Gensim code. Then I was migrated from a 32-bit > > windows computer to a 64-bit Windows computer. I reinstalled anaconda > > with spyder and gensim onto the new 64-bit computer. But now I get the > > attached error. (Attached picture.) > > > > File "<ipython-input-7-8d5a0df1b536>", line 1, in <module> > > > > runfile('C:/Users/Solomons/Documents/Python Scripts/blob similarity > > > > against file of phrases using ANC Corpus.py', > > wdir='C:/Users/Solomons/Documents/Python Scripts') > > > > ImportError: DLL load failed: The specified module could not be found. > > > > Line 1 in my code is this: > > > > # -*- coding: utf-8 -*- > > > > What could be my issue? > > > > Thanks in advance for your prompt support! > > > > ---------- > > Scott Solomon > > Data Mining Analyst > > SRA International > > 202-307-6792 > > Sco...@sr... > > Sco...@oj... > > --------------------------------------------------------------------------- > --- One dashboard for servers and applications across > Physical-Virtual-Cloud Widest out-of-the-box monitoring support with 50+ > applications > Performance metrics, stats and reports that give you Actionable Insights > Deep dive visibility with transaction tracing using APM Insight. > http://ad.doubleclick.net/ddm/clk/290420510;117567292;y > _______________________________________________ > cx-oracle-users mailing list > cx-...@li... > https://lists.sourceforge.net/lists/listinfo/cx-oracle-users |
From: Solomon, S. <Sco...@sr...> - 2015-04-29 12:58:53
|
Per this file it seems all the cx_oracle files were installed in Anaconda; where Spyder is looking. ---------- Scott Solomon Data Mining Analyst SRA International 202-307-6792 Sco...@sr... Sco...@oj... ________________________________________ From: Shai Berger [sh...@pl...] Sent: Wednesday, April 29, 2015 1:54 AM To: cx-...@li... Subject: [cx-oracle-users] DLL Error (was Re: DDL Error) DDL is about schema changes DLL is about loading libraries In your case, my guess is that you haven't installed the Oracle client libraries (or, if you have, your Python process doesn't know where to find them). Shai. On Tuesday 28 April 2015 23:04:40 Solomon, Scott wrote: > I had a working set of Gensim code. Then I was migrated from a 32-bit > windows computer to a 64-bit Windows computer. I reinstalled anaconda > with spyder and gensim onto the new 64-bit computer. But now I get the > attached error. (Attached picture.) > > File "<ipython-input-7-8d5a0df1b536>", line 1, in <module> > runfile('C:/Users/Solomons/Documents/Python Scripts/blob similarity > against file of phrases using ANC Corpus.py', > wdir='C:/Users/Solomons/Documents/Python Scripts') > > ImportError: DLL load failed: The specified module could not be found. > > Line 1 in my code is this: > > # -*- coding: utf-8 -*- > > What could be my issue? > > Thanks in advance for your prompt support! > > ---------- > Scott Solomon > Data Mining Analyst > SRA International > 202-307-6792 > Sco...@sr... > Sco...@oj... ------------------------------------------------------------------------------ One dashboard for servers and applications across Physical-Virtual-Cloud Widest out-of-the-box monitoring support with 50+ applications Performance metrics, stats and reports that give you Actionable Insights Deep dive visibility with transaction tracing using APM Insight. http://ad.doubleclick.net/ddm/clk/290420510;117567292;y _______________________________________________ cx-oracle-users mailing list cx-...@li... https://lists.sourceforge.net/lists/listinfo/cx-oracle-users |
From: Shai B. <sh...@pl...> - 2015-04-29 05:55:00
|
DDL is about schema changes DLL is about loading libraries In your case, my guess is that you haven't installed the Oracle client libraries (or, if you have, your Python process doesn't know where to find them). Shai. On Tuesday 28 April 2015 23:04:40 Solomon, Scott wrote: > I had a working set of Gensim code. Then I was migrated from a 32-bit > windows computer to a 64-bit Windows computer. I reinstalled anaconda > with spyder and gensim onto the new 64-bit computer. But now I get the > attached error. (Attached picture.) > > File "<ipython-input-7-8d5a0df1b536>", line 1, in <module> > runfile('C:/Users/Solomons/Documents/Python Scripts/blob similarity > against file of phrases using ANC Corpus.py', > wdir='C:/Users/Solomons/Documents/Python Scripts') > > ImportError: DLL load failed: The specified module could not be found. > > Line 1 in my code is this: > > # -*- coding: utf-8 -*- > > What could be my issue? > > Thanks in advance for your prompt support! > > ---------- > Scott Solomon > Data Mining Analyst > SRA International > 202-307-6792 > Sco...@sr... > Sco...@oj... |
From: Solomon, S. <Sco...@sr...> - 2015-04-28 20:39:04
|
I had a working set of Gensim code. Then I was migrated from a 32-bit windows computer to a 64-bit Windows computer. I reinstalled anaconda with spyder and gensim onto the new 64-bit computer. But now I get the attached error. (Attached picture.) File "<ipython-input-7-8d5a0df1b536>", line 1, in <module> runfile('C:/Users/Solomons/Documents/Python Scripts/blob similarity against file of phrases using ANC Corpus.py', wdir='C:/Users/Solomons/Documents/Python Scripts') ImportError: DLL load failed: The specified module could not be found. Line 1 in my code is this: # -*- coding: utf-8 -*- What could be my issue? Thanks in advance for your prompt support! ---------- Scott Solomon Data Mining Analyst SRA International 202-307-6792 Sco...@sr... Sco...@oj... |
From: christopher j. <chr...@or...> - 2015-04-16 21:26:34
|
On 4/16/15 2:13 PM, Shai Berger wrote: > On Thursday 16 April 2015 23:54:21 Simon Chang wrote: >> Hi, >> >> The README.txt says: >> "Please note that an Oracle client (or server) installation is required in >> order to use cx_Oracle." >> >> However, when I pip install on a RHEL 7 server that already has Oracle 11g >> installed, I got this error: >> >> Traceback (most recent call last): >> File "<string>", line 17, in <module> >> File "/tmp/pip-build-JK3O5z/cx-Oracle/setup.py", line 135, in >> <module> raise DistutilsSetupError("cannot locate an Oracle software " \ >> distutils.errors.DistutilsSetupError: cannot locate an Oracle software >> installation >> >> Can someone please advise what I'm missing? >> > In order for setup.py to find the Oracle installation, you need to set the > ORACLE_HOME environment variable. For the Oracle client libraries to load, you > also need to add the folder where they are installed to LD_LIBRARY_PATH (with > a server installation, typically, the value to add to LD_LIBRARY_PATH is > "$ORACLE_HOME/lib"). > > HTH, > Shai. > This seems a convient time to mention that the future cx_Oracle 5.2 setup.py [1] looks for Instant Client RPMs on Linux if ORACLE_HOME isn't set. It also uses rpath in this case. This all means that installing and using cx_Oracle with IC RPMs won't require variables to be set. They will still be needed when using an ORACLE_HOME install [2]. Chris [1] https://bitbucket.org/anthony_tuininga/cx_oracle/src/aaa8ec33b2c3358e3be50eee4dcfd852fd44efa7/setup.py?at=default [2] though you can explicitly enable rpath, so LD_LIBRARY_PATH isn't needed. -- chr...@or... http://twitter.com/ghrd |
From: Shai B. <sh...@pl...> - 2015-04-16 21:14:07
|
On Thursday 16 April 2015 23:54:21 Simon Chang wrote: > Hi, > > The README.txt says: > "Please note that an Oracle client (or server) installation is required in > order to use cx_Oracle." > > However, when I pip install on a RHEL 7 server that already has Oracle 11g > installed, I got this error: > > Traceback (most recent call last): > File "<string>", line 17, in <module> > File "/tmp/pip-build-JK3O5z/cx-Oracle/setup.py", line 135, in > <module> raise DistutilsSetupError("cannot locate an Oracle software " \ > distutils.errors.DistutilsSetupError: cannot locate an Oracle software > installation > > Can someone please advise what I'm missing? > In order for setup.py to find the Oracle installation, you need to set the ORACLE_HOME environment variable. For the Oracle client libraries to load, you also need to add the folder where they are installed to LD_LIBRARY_PATH (with a server installation, typically, the value to add to LD_LIBRARY_PATH is "$ORACLE_HOME/lib"). HTH, Shai. |
From: Simon C. <sim...@gm...> - 2015-04-16 20:54:29
|
Hi, The README.txt says: "Please note that an Oracle client (or server) installation is required in order to use cx_Oracle." However, when I pip install on a RHEL 7 server that already has Oracle 11g installed, I got this error: Traceback (most recent call last): File "<string>", line 17, in <module> File "/tmp/pip-build-JK3O5z/cx-Oracle/setup.py", line 135, in <module> raise DistutilsSetupError("cannot locate an Oracle software " \ distutils.errors.DistutilsSetupError: cannot locate an Oracle software installation Can someone please advise what I'm missing? Thanks! Simon |
From: Shai B. <sh...@pl...> - 2015-03-26 07:41:33
|
On Thursday 26 March 2015 02:54:36 Daniel Porter wrote: > On Mar 25, 2015 3:08 PM, "Shai Berger" <sh...@pl...> wrote: > > > Queries which return 6000 records and use LOB fields from each of the > > records are quite rare for Web servers; depending on the details of your > > use case, you may be able to improve things a lot by using Django's > > defer(), which makes the relevant fields lazy -- retrieved from the DB only > > when the specific field is accessed. > > > > Actually, queries which return 6000 records -- with or without LOBs -- > > aren't very common for Django's use cases; > > We're doing a model choice field where users can choose from a list of > people. It just happens we have a boatload of people. We're using > model.objects.only(...) to get only the fields that represent it. It still > takes like a second to pull those 6k records, as compared to it occurring > "instantly" (i.e. faster than i can perceive) with a postgres database. > I would question your Oracle setup. Talk to your DBA, see where the time is spent. It could be that your Oracle is short on memory or there's a vicious firewall between your web server and database server or something of that sort. Also, surely you're not presenting your users with a 6000-entry select-box... so there's a lot you can do. But discussion of that should be on django-users. > > Django retrieves records from Oracle in > > batches of 100. You can probably improve the 1.5s number by going into > > the Django source (django/db/backends/oracle/base.py), finding the line > > that says "self.cursor.arraysize = 100", and changing it to, say, 1000. > > But there are probably other things you can do, which would help you more. > > Will investigate that. Do you know what the tradeoffs there are? Does it > just up memory consumption, or would it somehow slow down smaller queries? > Assuming there's no shortage of memory, smaller queries shouldn't be affected. > > I'd guess you stand to gain most by using the "regular" performance- > > improvement techniques -- those related to the database, like indexing, > > those unrelated, like caching, and those web-related, like breaking the > > original service request into pieces (e.g. load initial chunk of data > > with the main request and get the rest in separate AJAX requests). Of > > course, I know almost nothing about your use-case, so I may be completely > > off, but that would be the common case. > > Memcached might be a real boon. The other bits, while important, don't > really address making SELECT * FROM TABLE faster, though, right? Badly set > up indexes wouldn't interfere with that operation? > You imply that there is no where-clause; in that case, no, bad indexes wouldn't matter much. But also, again, check Oracle setup. With a sane setup, if you keep querying a 6k-row-table for the whole table, it will be cached in memory (on the database server). > > > Are there known issues here? Does anyone have any advice for running > > > > > > this/them down? Are there workarounds? I don't know what next steps to > > > take. > > > > Django's Oracle backend has some serious inefficiencies in its treatment > > of numbers; with cx_Oracle 5.1.3 running on Linux or similar systems, they > > can be patched away if you don't need high-precision decimals, but details > > of that are probably out of scope for this mailing list. This is also > > unrelated to LOBs. > > This sounds pretty promising. If it's out of scope, can we take it off > list? Are there resources about it? I'm not sure what to google. > Discussion from 2.5 years ago (I wanted a fix to be in Django, but was convinced it is inappropriate; I was not a Django team member back then) https://groups.google.com/d/topic/django-developers/4BNkJyGez9A/discussion In there, you'll find a link to a patch: https://github.com/django/django/pull/393 It is a bit of a mess: the PR includes unrelated things, there's some dead- wrong bits in it (w.r.t Decimals, mostly), and at the time it didn't really do the trick (cx_Oracle 5.1.3 fixed that if you're on Linux/64bit). HTH, Shai. |
From: Daniel P. <dan...@gm...> - 2015-03-26 00:54:42
|
On Mar 25, 2015 3:08 PM, "Shai Berger" <sh...@pl...> wrote: > > Hi Daniel, > > On Wednesday 25 March 2015 19:35:52 Daniel Porter wrote: > > > > The queries don't seem to be the problem. The queries complete pretty > > quickly. The problem seems to be taking the query results and instantiating > > objects (through django's ORM). All of the results are slow, but the > > egregious ones are ones that return NCLOB. It takes ~21 seconds to return > > 6k records as django models (just grabbing everything: essentially SELECT * > > FROM ...). If you exclude the NCLOB columns, it reduces to a (still kind of > > unreasonable) 1.5 seconds. > > > > The problem is that retrieving a single LOB takes a database roundtrip; as far > as I know, this is an Oracle issue, there's nothing Django or cx_oracle can do > about it. Harumph. > > Queries which return 6000 records and use LOB fields from each of the records > are quite rare for Web servers; depending on the details of your use case, you > may be able to improve things a lot by using Django's defer(), which makes the > relevant fields lazy -- retrieved from the DB only when the specific field is > accessed. > Actually, queries which return 6000 records -- with or without LOBs -- aren't > very common for Django's use cases; We're doing a model choice field where users can choose from a list of people. It just happens we have a boatload of people. We're using model.objects.only(...) to get only the fields that represent it. It still takes like a second to pull those 6k records, as compared to it occurring "instantly" (i.e. faster than i can perceive) with a postgres database. > Django retrieves records from Oracle in > batches of 100. You can probably improve the 1.5s number by going into the > Django source (django/db/backends/oracle/base.py), finding the line that says > "self.cursor.arraysize = 100", and changing it to, say, 1000. But there are > probably other things you can do, which would help you more. > Will investigate that. Do you know what the tradeoffs there are? Does it just up memory consumption, or would it somehow slow down smaller queries? > I'd guess you stand to gain most by using the "regular" performance- > improvement techniques -- those related to the database, like indexing, those > unrelated, like caching, and those web-related, like breaking the original > service request into pieces (e.g. load initial chunk of data with the main > request and get the rest in separate AJAX requests). Of course, I know almost > nothing about your use-case, so I may be completely off, but that would be the > common case. > Memcached might be a real boon. The other bits, while important, don't really address making SELECT * FROM TABLE faster, though, right? Badly set up indexes wouldn't interfere with that operation? > > Are there known issues here? Does anyone have any advice for running > > this/them down? Are there workarounds? I don't know what next steps to > > take. > > Django's Oracle backend has some serious inefficiencies in its treatment of > numbers; with cx_Oracle 5.1.3 running on Linux or similar systems, they can be > patched away if you don't need high-precision decimals, but details of that > are probably out of scope for this mailing list. This is also unrelated to > LOBs. This sounds pretty promising. If it's out of scope, can we take it off list? Are there resources about it? I'm not sure what to google. > > HTH, > Shai > > ------------------------------------------------------------------------------ > Dive into the World of Parallel Programming The Go Parallel Website, sponsored > by Intel and developed in partnership with Slashdot Media, is your hub for all > things parallel software development, from weekly thought leadership blogs to > news, videos, case studies, tutorials and more. Take a look and join the > conversation now. http://goparallel.sourceforge.net/ > _______________________________________________ > cx-oracle-users mailing list > cx-...@li... > https://lists.sourceforge.net/lists/listinfo/cx-oracle-users |
From: Shai B. <sh...@pl...> - 2015-03-25 19:08:24
|
Hi Daniel, On Wednesday 25 March 2015 19:35:52 Daniel Porter wrote: > > The queries don't seem to be the problem. The queries complete pretty > quickly. The problem seems to be taking the query results and instantiating > objects (through django's ORM). All of the results are slow, but the > egregious ones are ones that return NCLOB. It takes ~21 seconds to return > 6k records as django models (just grabbing everything: essentially SELECT * > FROM ...). If you exclude the NCLOB columns, it reduces to a (still kind of > unreasonable) 1.5 seconds. > The problem is that retrieving a single LOB takes a database roundtrip; as far as I know, this is an Oracle issue, there's nothing Django or cx_oracle can do about it. Queries which return 6000 records and use LOB fields from each of the records are quite rare for Web servers; depending on the details of your use case, you may be able to improve things a lot by using Django's defer(), which makes the relevant fields lazy -- retrieved from the DB only when the specific field is accessed. Actually, queries which return 6000 records -- with or without LOBs -- aren't very common for Django's use cases; Django retrieves records from Oracle in batches of 100. You can probably improve the 1.5s number by going into the Django source (django/db/backends/oracle/base.py), finding the line that says "self.cursor.arraysize = 100", and changing it to, say, 1000. But there are probably other things you can do, which would help you more. I'd guess you stand to gain most by using the "regular" performance- improvement techniques -- those related to the database, like indexing, those unrelated, like caching, and those web-related, like breaking the original service request into pieces (e.g. load initial chunk of data with the main request and get the rest in separate AJAX requests). Of course, I know almost nothing about your use-case, so I may be completely off, but that would be the common case. > Are there known issues here? Does anyone have any advice for running > this/them down? Are there workarounds? I don't know what next steps to > take. Django's Oracle backend has some serious inefficiencies in its treatment of numbers; with cx_Oracle 5.1.3 running on Linux or similar systems, they can be patched away if you don't need high-precision decimals, but details of that are probably out of scope for this mailing list. This is also unrelated to LOBs. HTH, Shai |
From: Daniel P. <dan...@gm...> - 2015-03-25 17:35:59
|
Hi there, I'm not exactly sure if this is the right place but - I'm having a performance problem with django running against an oracle database using cx-oracle. It's django 1.4 and cx-oracle 5.1.3 using the oracle 11g client. I did, however, upgrade to python 3, django 1.7.7 and cx-oracle 5.1.3 and successfully reproduce the problem. The queries don't seem to be the problem. The queries complete pretty quickly. The problem seems to be taking the query results and instantiating objects (through django's ORM). All of the results are slow, but the egregious ones are ones that return NCLOB. It takes ~21 seconds to return 6k records as django models (just grabbing everything: essentially SELECT * FROM ...). If you exclude the NCLOB columns, it reduces to a (still kind of unreasonable) 1.5 seconds. Are there known issues here? Does anyone have any advice for running this/them down? Are there workarounds? I don't know what next steps to take. Thanks for your help! Daniel |
From: Richard A. <ric...@gm...> - 2015-03-18 11:49:33
|
Hi all, Just curious if there are plans for the ability to create custom objects, like SDO_GEOMETRY polygons, so that I could take advantage of executemany() for inserting large #s of polygons. Working with points isn’t an issue since you can bind the latitude and longitude variables for SDO_POINTs, but polygons and lines are a different story. I’ve had to loop through my list of lists, recreate the SQL statement for each insert in order to “attach” the vertices into the statement, then execute the INSERT statements one by one. It’s not that much of a performance hit when you’re dealing with a few hundred polygons, but when you get into the hundreds of thousands, things start to slow down! I’d love to be able to either create the SDO_GEOM for each entry in the list and use executemany(), or somehow bind a varray of the vertices to the executemany(). Unless I’ve missed something in the documentation (which is totally possible), I don’t think that’s supported yet in cx_Oracle, correct? If not, any plans on including that in a future release? Thanks! Richard — Sent from Mailbox |
From: Anthony T. <ant...@gm...> - 2015-03-12 02:04:39
|
Hi, I have no idea what the problem is with your situation, unfortunately! Even if you can't upgrade to Python 2.7 for your project, though, you can at least install Python 2.7 and cx_Oracle 5.1.3 to determine if it is a problem with your older environment. It would also help to know the exact line at which it fails. Anthony On Fri, Feb 13, 2015 at 1:50 AM, Brown, Steve <Ste...@wo...> wrote: > Hi, > > > > I use Python 2.6.6 with cx_Oracle 5.1.2 and Oracle DB Client 11.2..0.2.0. > I cannot upgrade to Python 2.7. > > > > I have the following stored procedure signature: > > > > CREATE OR REPLACE PROCEDURE insert_task_execution( > > vId OUT task_execution.Id%TYPE, > > vJob_id IN task_execution.job_id%TYPE, > > vInitiated_by IN task_execution.initiated_by%TYPE, > > . > > . > > . > > > > The table definition is: > > > > CREATE TABLE task_execution > > ( > > id INTEGER NOT NULL, > > task_summary_id INTEGER NOT NULL, > > job_id INTEGER NOT NULL, > > initiated_by VARCHAR2(16 CHAR) NOT NULL, > > . > > . > > . > > CONSTRAINT pk_task_exe PRIMARY KEY (id), > > CONSTRAINT fk_task_exe_summary FOREIGN KEY (task_summary_id) > REFERENCES task_summary(id) > > ); > > > > I call cursor.callproc like this: > > > > connection = cx_Oracle.connect(connectionString) > > cursor = connection.cursor() > > newRecordId = cursor.var(cx_Oracle.NUMBER) > > parameters = [newRecordId, 123, initiatedBy, ... ] > > cursor.callproc('insert_task_execution', parameters) > > > > I get this exception before any database access.: > > > > > > cx_Oracle.NotSupportedError: Variable_TypeByValue(): unhandled data type > cx_Oracle.NUMBER > > > > > > Can someone tell me what I'm doing wrong, and how to fix it? > > > > Many thanks, > > Steve > > > This e-mail and any attachments are confidential, intended only for the addressee and may be privileged. If you have received this e-mail in error, please notify the sender immediately and delete it. Any content that does not relate to the business of Worldpay is personal to the sender and not authorised or endorsed by Worldpay. Worldpay does not accept responsibility for viruses or any loss or damage arising from transmission or access. > > Worldpay (UK) Limited (Company No: 07316500/ Financial Conduct Authority No: 530923), Worldpay Limited (Company No:03424752 / Financial Conduct Authority No: 504504), Worldpay AP Limited (Company No: 05593466 / Financial Conduct Authority No: 502597). Registered Office: The Walbrook Building, 25 Walbrook, London EC4N 8AF and authorised by the Financial Conduct Authority under the Payment Service Regulations 2009 for the provision of payment services. Worldpay (UK) Limited is authorised and regulated by the Financial Conduct Authority for consumer credit activities. Worldpay B.V. (WPBV) has its registered office in Amsterdam, the Netherlands (Handelsregister KvK no. 60494344). WPBV holds a licence from and is included in the register kept by De Nederlandsche Bank, which registration can be consulted through www.dnb.nl. Worldpay, the logo and any associated brand names are trade marks of the Worldpay group. > > > > > > ------------------------------------------------------------------------------ > Dive into the World of Parallel Programming. The Go Parallel Website, > sponsored by Intel and developed in partnership with Slashdot Media, is > your > hub for all things parallel software development, from weekly thought > leadership blogs to news, videos, case studies, tutorials and more. Take a > look and join the conversation now. http://goparallel.sourceforge.net/ > _______________________________________________ > cx-oracle-users mailing list > cx-...@li... > https://lists.sourceforge.net/lists/listinfo/cx-oracle-users > > |
From: Anthony T. <ant...@gm...> - 2015-03-11 22:01:20
|
Hi Ed, I would love to be able to use wheels. The problem is that Oracle has a different ABI for Oracle 10, 11 and 12 but the Python wheel packaging format doesn't allow for that concept -- or it didn't the last time I looked at it. If you have information on what can be done to handle that I'd appreciate it. At the moment if you create a wheel for Oracle 10, 11 and 12 then pip will not distinguish between the three of them since the Python ABI is unchanged. Again, if you know otherwise, let me know! Anthony On Wed, Mar 11, 2015 at 8:18 AM, edb...@gm... <edb...@gm...> wrote: > Hi Anthony, > > With 5.2 sounding fairly close to release, I'd like to revisit building > Wheels for easier installation on Windows with pip. Sadly, I don't have a > Python-compatible compiler set up here, so there's only so much I can test. > > Would this be as simple as running "python setup.py bdist_wheel" as part > of the build process, or is there more to it? > > Thanks, > -Ed > > On Tue, Sep 23, 2014 at 5:49 PM edb...@gm... <edb...@gm...> > wrote: > >> Hello, >> >> I was wondering how feasible it would be to get Wheel distributions for >> cx_Oracle uploaded to PyPI, and I found this thread from last year: >> >> http://sourceforge.net/p/cx-oracle/mailman/message/31100757/ >> >> Did anything come of this? What would need to be done at this point to >> finish the work? >> >> (Also, please let me know if there's a better list for this conversation.) >> >> Thank you, >> -Ed Brannin >> >> edb...@gm... >> cell: 585-261-0279 >> > > > ------------------------------------------------------------------------------ > Dive into the World of Parallel Programming The Go Parallel Website, > sponsored > by Intel and developed in partnership with Slashdot Media, is your hub for > all > things parallel software development, from weekly thought leadership blogs > to > news, videos, case studies, tutorials and more. Take a look and join the > conversation now. http://goparallel.sourceforge.net/ > _______________________________________________ > cx-oracle-users mailing list > cx-...@li... > https://lists.sourceforge.net/lists/listinfo/cx-oracle-users > > |
From: Glyph L. <gl...@tw...> - 2015-03-11 17:55:13
|
That should pretty much be it. I've made binary wheels of cx_Oracle in the past and they seemed to work more or less out of the box. The one thing that really needs testing is to make sure that the extensions deal with different install locations of the oracle libraries; I think that should be fine but I've never tested it since my environments were always pretty consistent. -glyph > On Mar 11, 2015, at 7:18 AM, edb...@gm... wrote: > > Hi Anthony, > > With 5.2 sounding fairly close to release, I'd like to revisit building Wheels for easier installation on Windows with pip. Sadly, I don't have a Python-compatible compiler set up here, so there's only so much I can test. > > Would this be as simple as running "python setup.py bdist_wheel" as part of the build process, or is there more to it? > > Thanks, > -Ed > > On Tue, Sep 23, 2014 at 5:49 PM edb...@gm... <mailto:edb...@gm...> <edb...@gm... <mailto:edb...@gm...>> wrote: > Hello, > > I was wondering how feasible it would be to get Wheel distributions for cx_Oracle uploaded to PyPI, and I found this thread from last year: > > http://sourceforge.net/p/cx-oracle/mailman/message/31100757/ <http://sourceforge.net/p/cx-oracle/mailman/message/31100757/> > > Did anything come of this? What would need to be done at this point to finish the work? > > (Also, please let me know if there's a better list for this conversation.) > > Thank you, > -Ed Brannin > > edb...@gm... <mailto:edb...@gm...> > cell: 585-261-0279 > ------------------------------------------------------------------------------ > Dive into the World of Parallel Programming The Go Parallel Website, sponsored > by Intel and developed in partnership with Slashdot Media, is your hub for all > things parallel software development, from weekly thought leadership blogs to > news, videos, case studies, tutorials and more. Take a look and join the > conversation now. http://goparallel.sourceforge.net/_______________________________________________ > cx-oracle-users mailing list > cx-...@li... > https://lists.sourceforge.net/lists/listinfo/cx-oracle-users |
From: <edb...@gm...> - 2015-03-11 14:19:13
|
Hi Anthony, With 5.2 sounding fairly close to release, I'd like to revisit building Wheels for easier installation on Windows with pip. Sadly, I don't have a Python-compatible compiler set up here, so there's only so much I can test. Would this be as simple as running "python setup.py bdist_wheel" as part of the build process, or is there more to it? Thanks, -Ed On Tue, Sep 23, 2014 at 5:49 PM edb...@gm... <edb...@gm...> wrote: > Hello, > > I was wondering how feasible it would be to get Wheel distributions for > cx_Oracle uploaded to PyPI, and I found this thread from last year: > > http://sourceforge.net/p/cx-oracle/mailman/message/31100757/ > > Did anything come of this? What would need to be done at this point to > finish the work? > > (Also, please let me know if there's a better list for this conversation.) > > Thank you, > -Ed Brannin > > edb...@gm... > cell: 585-261-0279 > |
From: Ivanelson N. <iva...@gm...> - 2015-03-11 04:18:38
|
Anthony, Congratulations on your work. @ivanelson []s 2015-03-11 0:18 GMT-03:00 Anthony Tuininga <ant...@gm...>: > Well, clearly those plans were blown out of the water. :-( Just wanted to > let everyone know that I have not completely forgotten about all of you and > am still working on getting this release ready. I'll post again when I have > all of the changes ready for testing. > > In the meantime, to answer some of the questions, here is what is > currently slated for 5.2. > > http://cx-oracle.readthedocs.org/en/latest/releasenotes.html > > Anthony > > On Sat, Feb 14, 2015 at 10:03 PM, Anthony Tuininga < > ant...@gm...> wrote: > >> Hi Gary, >> >> I have been working with Oracle developers on a number of new features -- >> some of which have been detailed here on this list. And the intent is to >> release 5.2 with these features. At that point installers for Python 3.4 >> will be made available. I had hoped to get that done around mid January but >> I have been far too busy lately. I hope now to be able to get the remaining >> features checked in and a new release made soon -- perhaps as early as next >> week if my plans are not blown to pieces! My apologies for the very long >> delay. If you are able to build and test the features that have already >> been checked in and let me know if all is working well that would be >> helpful. I run the test suite on Linux and Windows but I don't have other >> platforms readily available -- and sometimes the test suite doesn't cover >> everything either. Any help is appreciated, as is your patience. :-) >> >> Anthony >> >> On Thu, Feb 12, 2015 at 8:36 AM, Gary Furash <fur...@gm...> >> wrote: >> >>> Anthony's last post (3/2014) suggested that a version for 3.4 will be >>> available soon. Any news? Can I (we) Help? >>> >>> >>> ------------------------------------------------------------------------------ >>> Dive into the World of Parallel Programming. The Go Parallel Website, >>> sponsored by Intel and developed in partnership with Slashdot Media, is >>> your >>> hub for all things parallel software development, from weekly thought >>> leadership blogs to news, videos, case studies, tutorials and more. Take >>> a >>> look and join the conversation now. http://goparallel.sourceforge.net/ >>> _______________________________________________ >>> cx-oracle-users mailing list >>> cx-...@li... >>> https://lists.sourceforge.net/lists/listinfo/cx-oracle-users >>> >>> >> > > > ------------------------------------------------------------------------------ > Dive into the World of Parallel Programming The Go Parallel Website, > sponsored > by Intel and developed in partnership with Slashdot Media, is your hub for > all > things parallel software development, from weekly thought leadership blogs > to > news, videos, case studies, tutorials and more. Take a look and join the > conversation now. http://goparallel.sourceforge.net/ > _______________________________________________ > cx-oracle-users mailing list > cx-...@li... > https://lists.sourceforge.net/lists/listinfo/cx-oracle-users > > |
From: Anthony T. <ant...@gm...> - 2015-03-11 03:18:46
|
Well, clearly those plans were blown out of the water. :-( Just wanted to let everyone know that I have not completely forgotten about all of you and am still working on getting this release ready. I'll post again when I have all of the changes ready for testing. In the meantime, to answer some of the questions, here is what is currently slated for 5.2. http://cx-oracle.readthedocs.org/en/latest/releasenotes.html Anthony On Sat, Feb 14, 2015 at 10:03 PM, Anthony Tuininga < ant...@gm...> wrote: > Hi Gary, > > I have been working with Oracle developers on a number of new features -- > some of which have been detailed here on this list. And the intent is to > release 5.2 with these features. At that point installers for Python 3.4 > will be made available. I had hoped to get that done around mid January but > I have been far too busy lately. I hope now to be able to get the remaining > features checked in and a new release made soon -- perhaps as early as next > week if my plans are not blown to pieces! My apologies for the very long > delay. If you are able to build and test the features that have already > been checked in and let me know if all is working well that would be > helpful. I run the test suite on Linux and Windows but I don't have other > platforms readily available -- and sometimes the test suite doesn't cover > everything either. Any help is appreciated, as is your patience. :-) > > Anthony > > On Thu, Feb 12, 2015 at 8:36 AM, Gary Furash <fur...@gm...> wrote: > >> Anthony's last post (3/2014) suggested that a version for 3.4 will be >> available soon. Any news? Can I (we) Help? >> >> >> ------------------------------------------------------------------------------ >> Dive into the World of Parallel Programming. The Go Parallel Website, >> sponsored by Intel and developed in partnership with Slashdot Media, is >> your >> hub for all things parallel software development, from weekly thought >> leadership blogs to news, videos, case studies, tutorials and more. Take a >> look and join the conversation now. http://goparallel.sourceforge.net/ >> _______________________________________________ >> cx-oracle-users mailing list >> cx-...@li... >> https://lists.sourceforge.net/lists/listinfo/cx-oracle-users >> >> > |
From: Anthony T. <ant...@gm...> - 2015-03-11 03:02:15
|
Hi Dom, Apologies for the delay in responding. I have been extremely busy at work without any opportunity to do much with cx_Oracle and cx_Freeze. :-( Fortunately, that looks to be coming to an end. :-) cx_Oracle supports PL/SQL arrays (index by integer) but does not support SQL objects (arrays) except on read from a SQL statement, not a call to a PL/SQL function. This issue has come up a few times over the years but I have not had the chance to work on it -- nor the need for it it at work, unfortunately. Hopefully sometime soon. In the meantime, you can use PL/SQL arrays. Anthony On Sun, Jan 18, 2015 at 11:44 AM, Dominic Giles <dom...@gm...> wrote: > Apologies if this is a repeat…. I checked the archives and couldn’t find > it. > > I'm trying to determine if it’s possible to return a simple array of > numbers from a package using cx_oracle (5.1.2). I believe this is possible. > I've not been able to find anything that suggest it isn’t. > > create or replace TYPE NUMARRAY > -- Simple VArray of numbers > is VARRAY(3) OF NUMBER; > / > > create or replace PACKAGE SIMPLEPACKAGE > AS > FUNCTION DoSomethingSimple( > cust_id INTEGER) > RETURN numarray; > FUNCTION DoSomethingSimpler( > cust_id INTEGER) > RETURN INTEGER; > END SIMPLEPACKAGE; > / > > create or replace PACKAGE BODY SIMPLEPACKAGE > AS > FUNCTION DOSOMETHINGSIMPLE( > cust_id INTEGER) > RETURN numarray > AS > simple_array numarray := numarray(); > BEGIN > simple_array.extend; > simple_array(1) := cust_id; > simple_array.extend; > simple_array(2) := cust_id; > simple_array.extend; > simple_array(3) := cust_id; > RETURN SIMPLE_ARRAY; > END DOSOMETHINGSIMPLE; > FUNCTION DOSOMETHINGSIMPLER( > cust_id INTEGER) > RETURN INTEGER > AS > BEGIN > RETURN cust_id; > END DOSOMETHINGSIMPLER; > END SIMPLEPACKAGE; > / > > And the Python test code > > import cx_Oracle > > if __name__ == '__main__': > with cx_Oracle.connect('soe', 'soe', 'oracle12c2/soe') as connection: > try: > cursor = connection.cursor(); > ArrayType = cursor.arrayvar(cx_Oracle.NUMBER,3) > NumberType = cursor.var(cx_Oracle.NUMBER) > cursor.callfunc("SIMPLEPACKAGE.DOSOMETHINGSIMPLER", > NumberType, [99]) > cursor.callfunc("SIMPLEPACKAGE.DOSOMETHINGSIMPLE", ArrayType, > [99]) > except cx_Oracle.DatabaseError as dberror: > print dberror > finally: > cursor.close() > > The call to return works just fine. The call to return the function gives > the error > > ORA-06550: line 1, column 13: > PLS-00382: expression is of wrong type > ORA-06550: line 1, column 7: > PL/SQL: Statement ignored > > Any ideas what I'm doing wrong? > > Thanks > > Dom > > > ------------------------------------------------------------------------------ > New Year. New Location. New Benefits. New Data Center in Ashburn, VA. > GigeNET is offering a free month of service with a new server in Ashburn. > Choose from 2 high performing configs, both with 100TB of bandwidth. > Higher redundancy.Lower latency.Increased capacity.Completely compliant. > http://p.sf.net/sfu/gigenet > _______________________________________________ > cx-oracle-users mailing list > cx-...@li... > https://lists.sourceforge.net/lists/listinfo/cx-oracle-users > > |
From: Krishna M. IV <kri...@or...> - 2015-03-02 07:54:52
|
Shai, looks like nextset() is implemented by some db drivers to expose the resultsets from stored procedures too. But there is a restriction there to exhaust or discard all the rows of the current resultset before moving to the next. Our proposed API allows applications to fetch from the implicit cursors as per their need and does not impose that restriction. Sure, I understand we should document it clearly. thanks, krishna On 3/1/2015 8:11 AM, Shai Berger wrote: > Hi Krishna, > > I just happened to notice that PEP-249 defines a `nextset()` operation for > multiple result sets. I suspect this is not exactly suitable for Oracle > implicit result sets, but you should consider either using it or explaining in > docs why you don't. It is currently not implemented by cx_Oracle, as far as > I'm aware. > > Shai. > > On Friday 20 February 2015 08:15:46 Krishna Mohan IV wrote: >> Shai, >> thanks for the inputs! We can as well make topcur.implicitresults() >> return a tuple that can be used in the same way you outlined here. That >> simplifies the implementation and I guess there is no extra benefit that >> an iterator provides the users in this case. >> >> thanks, >> krishna >> >> On 2/4/2015 1:19 AM, Shai Berger wrote: >>> Hi Krishna, >>> >>> This looks very interesting. Just one comment on the suggested API: >>> >>> On Tuesday 03 February 2015 13:36:10 Krishna Mohan IV wrote: >>>> Cursor.getnextimplicitresult() >>>> >>>> Fetch cursor for a unique resultset returned by a pl/sql function or >>>> procedure using dbms_sql.return_result. This function should be used >>>> when the Cursor. implicitresultcount is greater than 0. This routine >>>> should be called iteratively to get all the cursors returned by the >>>> PLSQL procedure. Fetching of rows for each of these cursor objects can >>>> be done using fetchall/ fetchmany/ fetchone . >>>> A Python none object is returned when no implicit results exist. >>> I would consider adding, from the get-go, an iterator for such cursors, >>> as the >>> >>> primary interface. Something like: >>> for imprset in topcur.implicitresults(): >>> results = imprset.fetchall() >>> print results >>> >>> Note that, according to the docs, the result-sets can be fetched in >>> parallel, >>> >>> so something like this should also work: >>> result_sets = list(topcur.implicitresults()) >>> results = zip(*result_sets) >>> >>> Have fun, >>> >>> Shai. >>> >>> ------------------------------------------------------------------------- >>> ----- Dive into the World of Parallel Programming. The Go Parallel >>> Website, sponsored by Intel and developed in partnership with Slashdot >>> Media, is your hub for all things parallel software development, from >>> weekly thought leadership blogs to news, videos, case studies, tutorials >>> and more. Take a look and join the conversation now. >>> http://goparallel.sourceforge.net/ >>> _______________________________________________ >>> cx-oracle-users mailing list >>> cx-...@li... >>> https://lists.sourceforge.net/lists/listinfo/cx-oracle-users >> --------------------------------------------------------------------------- >> --- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server >> from Actuate! Instantly Supercharge Your Business Reports and Dashboards >> with Interactivity, Sharing, Native Excel Exports, App Integration & more >> Get technology previously reserved for billion-dollar corporations, FREE >> http://pubads.g.doubleclick.net/gampad/clk?id=190641631&iu=/4140/ostg.clktr >> k _______________________________________________ >> cx-oracle-users mailing list >> cx-...@li... >> https://lists.sourceforge.net/lists/listinfo/cx-oracle-users > ------------------------------------------------------------------------------ > Dive into the World of Parallel Programming The Go Parallel Website, sponsored > by Intel and developed in partnership with Slashdot Media, is your hub for all > things parallel software development, from weekly thought leadership blogs to > news, videos, case studies, tutorials and more. Take a look and join the > conversation now. http://goparallel.sourceforge.net/ > _______________________________________________ > cx-oracle-users mailing list > cx-...@li... > https://lists.sourceforge.net/lists/listinfo/cx-oracle-users |
From: Shai B. <sh...@pl...> - 2015-03-01 02:42:00
|
Hi Krishna, I just happened to notice that PEP-249 defines a `nextset()` operation for multiple result sets. I suspect this is not exactly suitable for Oracle implicit result sets, but you should consider either using it or explaining in docs why you don't. It is currently not implemented by cx_Oracle, as far as I'm aware. Shai. On Friday 20 February 2015 08:15:46 Krishna Mohan IV wrote: > Shai, > thanks for the inputs! We can as well make topcur.implicitresults() > return a tuple that can be used in the same way you outlined here. That > simplifies the implementation and I guess there is no extra benefit that > an iterator provides the users in this case. > > thanks, > krishna > > On 2/4/2015 1:19 AM, Shai Berger wrote: > > Hi Krishna, > > > > This looks very interesting. Just one comment on the suggested API: > > > > On Tuesday 03 February 2015 13:36:10 Krishna Mohan IV wrote: > >> Cursor.getnextimplicitresult() > >> > >> Fetch cursor for a unique resultset returned by a pl/sql function or > >> procedure using dbms_sql.return_result. This function should be used > >> when the Cursor. implicitresultcount is greater than 0. This routine > >> should be called iteratively to get all the cursors returned by the > >> PLSQL procedure. Fetching of rows for each of these cursor objects can > >> be done using fetchall/ fetchmany/ fetchone . > >> A Python none object is returned when no implicit results exist. > > > > I would consider adding, from the get-go, an iterator for such cursors, > > as the > > > > primary interface. Something like: > > for imprset in topcur.implicitresults(): > > results = imprset.fetchall() > > print results > > > > Note that, according to the docs, the result-sets can be fetched in > > parallel, > > > > so something like this should also work: > > result_sets = list(topcur.implicitresults()) > > results = zip(*result_sets) > > > > Have fun, > > > > Shai. > > > > ------------------------------------------------------------------------- > > ----- Dive into the World of Parallel Programming. The Go Parallel > > Website, sponsored by Intel and developed in partnership with Slashdot > > Media, is your hub for all things parallel software development, from > > weekly thought leadership blogs to news, videos, case studies, tutorials > > and more. Take a look and join the conversation now. > > http://goparallel.sourceforge.net/ > > _______________________________________________ > > cx-oracle-users mailing list > > cx-...@li... > > https://lists.sourceforge.net/lists/listinfo/cx-oracle-users > > --------------------------------------------------------------------------- > --- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server > from Actuate! Instantly Supercharge Your Business Reports and Dashboards > with Interactivity, Sharing, Native Excel Exports, App Integration & more > Get technology previously reserved for billion-dollar corporations, FREE > http://pubads.g.doubleclick.net/gampad/clk?id=190641631&iu=/4140/ostg.clktr > k _______________________________________________ > cx-oracle-users mailing list > cx-...@li... > https://lists.sourceforge.net/lists/listinfo/cx-oracle-users |
From: Shai B. <sh...@pl...> - 2015-02-26 06:29:58
|
Hi Anthony, On Sunday 15 February 2015 07:03:54 Anthony Tuininga wrote: > > I have been working with Oracle developers on a number of new features -- > some of which have been detailed here on this list. And the intent is to > release 5.2 with these features. At that point installers for Python 3.4 > will be made available. I had hoped to get that done around mid January but > I have been far too busy lately. I hope now to be able to get the remaining > features checked in and a new release made soon -- perhaps as early as next > week if my plans are not blown to pieces! As I have noted before, the test-suite currently fails on Oracle11 client libs. Do you plan to fix this? Is there a list of features intended for this release publicly available? For what it's worth, I will probably be able to respond and cooperate on PRs etc this weekend, but will be much less available next week. Thanks for all your work, Shai. |
From: Krishna M. IV <kri...@or...> - 2015-02-20 06:15:59
|
Shai, thanks for the inputs! We can as well make topcur.implicitresults() return a tuple that can be used in the same way you outlined here. That simplifies the implementation and I guess there is no extra benefit that an iterator provides the users in this case. thanks, krishna On 2/4/2015 1:19 AM, Shai Berger wrote: > Hi Krishna, > > This looks very interesting. Just one comment on the suggested API: > > On Tuesday 03 February 2015 13:36:10 Krishna Mohan IV wrote: >> Cursor.getnextimplicitresult() >> >> Fetch cursor for a unique resultset returned by a pl/sql function or >> procedure using dbms_sql.return_result. This function should be used >> when the Cursor. implicitresultcount is greater than 0. This routine >> should be called iteratively to get all the cursors returned by the >> PLSQL procedure. Fetching of rows for each of these cursor objects can >> be done using fetchall/ fetchmany/ fetchone . >> A Python none object is returned when no implicit results exist. >> > I would consider adding, from the get-go, an iterator for such cursors, as the > primary interface. Something like: > > for imprset in topcur.implicitresults(): > results = imprset.fetchall() > print results > > Note that, according to the docs, the result-sets can be fetched in parallel, > so something like this should also work: > > result_sets = list(topcur.implicitresults()) > results = zip(*result_sets) > > Have fun, > Shai. > > ------------------------------------------------------------------------------ > Dive into the World of Parallel Programming. The Go Parallel Website, > sponsored by Intel and developed in partnership with Slashdot Media, is your > hub for all things parallel software development, from weekly thought > leadership blogs to news, videos, case studies, tutorials and more. Take a > look and join the conversation now. http://goparallel.sourceforge.net/ > _______________________________________________ > cx-oracle-users mailing list > cx-...@li... > https://lists.sourceforge.net/lists/listinfo/cx-oracle-users |
From: Anthony T. <ant...@gm...> - 2015-02-15 05:04:01
|
Hi Gary, I have been working with Oracle developers on a number of new features -- some of which have been detailed here on this list. And the intent is to release 5.2 with these features. At that point installers for Python 3.4 will be made available. I had hoped to get that done around mid January but I have been far too busy lately. I hope now to be able to get the remaining features checked in and a new release made soon -- perhaps as early as next week if my plans are not blown to pieces! My apologies for the very long delay. If you are able to build and test the features that have already been checked in and let me know if all is working well that would be helpful. I run the test suite on Linux and Windows but I don't have other platforms readily available -- and sometimes the test suite doesn't cover everything either. Any help is appreciated, as is your patience. :-) Anthony On Thu, Feb 12, 2015 at 8:36 AM, Gary Furash <fur...@gm...> wrote: > Anthony's last post (3/2014) suggested that a version for 3.4 will be > available soon. Any news? Can I (we) Help? > > > ------------------------------------------------------------------------------ > Dive into the World of Parallel Programming. The Go Parallel Website, > sponsored by Intel and developed in partnership with Slashdot Media, is > your > hub for all things parallel software development, from weekly thought > leadership blogs to news, videos, case studies, tutorials and more. Take a > look and join the conversation now. http://goparallel.sourceforge.net/ > _______________________________________________ > cx-oracle-users mailing list > cx-...@li... > https://lists.sourceforge.net/lists/listinfo/cx-oracle-users > > |