I've developed (together with two colleagues) a win32 application framework (a kind of ERP) which was named "Ouverture". It is heavily based on Oracle (stored procedure, temporary tables, view (very complex ones)).
I'll blog about this product later. For now I would like to recap my findings in the, it seems, not so explored area of "link between Postgresql and Oracle".
My company asked me to investigate the possibility of querying the Oracle tables, used by Ouverture, from a Postgresql database (pg from here on). Please note that the link should go strictly this way, not from Oracle to Pg.
I started searching the net and found, for my surprise, that there is no *built in* support in pg for linking an external database but there is a "contrib" project called dbi_link (). Knowing nothing about pg, perl and DBI I've started studying this package. First thing that I noticed was that there is very low activity about it: last available version is from year 2007 and there is very low activity on forums. I've also contacted the dbi-link author, Dave Fetter, but he doesn't seem much willing to help me .... maybe he is too busy.
See next posts (I don't like long posts :-)) to see my dbi-link experience...
See you
Wednesday, December 30, 2009
Tuesday, August 12, 2008
Les Miserables
I've started reading The Miserables by Victor Hugo. As I started I was a little skeptic
but I rapidly turned to enthusiastic.
It is a strange reading, sometimes painful (like some Puccini or Verdi opera's libretto). Most ofter it's a pleasure. I know nothing about Hugo, I don't like reading
critical essays (or simply book introductions) before reading the book itself.
Maybe I'll read after. For now it is amazing how Hugo seems to trying to keep together a strong religiosity with the admiration for the french revolution ... also it is amazing how much mental prejudices he had , unconsciounsly (does this word exist in english ?) ....
a lesson for today and for every time ... we all have mental blindnesses, we simply can't see them, no matter how "open minded" we are (or claim to be) ..
but I rapidly turned to enthusiastic.
It is a strange reading, sometimes painful (like some Puccini or Verdi opera's libretto). Most ofter it's a pleasure. I know nothing about Hugo, I don't like reading
critical essays (or simply book introductions) before reading the book itself.
Maybe I'll read after. For now it is amazing how Hugo seems to trying to keep together a strong religiosity with the admiration for the french revolution ... also it is amazing how much mental prejudices he had , unconsciounsly (does this word exist in english ?) ....
a lesson for today and for every time ... we all have mental blindnesses, we simply can't see them, no matter how "open minded" we are (or claim to be) ..
Tuesday, July 22, 2008
Borges, Bacon and Oracle
Today a colleague of mine called me to watch a strange problem. A Delphi written program refused, on his pc, to connect to an Oracle instance giving the error:
"ORA-12154: TNS:could not resolve the connect identifier specified".
I checked the connection string and it seemed correct. I tried connecting with tnsping and then with sqlplus and they all succeed.
Then I checked the same program on my pc, and there it worked. At that moment a bell rang in my head. I came back at my colleague's desk and looked at the folder name in which the program was stored. It was "Jobtime WF (exe)".
It seems that Oracle OCI doesn't like path with parenthesis. Changing the folder name fixed the error.
I had already met this error in year 2000, when I started working with Oracle, but from then I forgot it. This kind of thing happened to me quite often.
I mean I often feel that some technical detail become new just because I forgot it.
It always reminds to me a quote used by epigraph by Borges, at the beginning of "El Aleph":
Salomon saith: There is no new thing upon the earth. So that as Plato had an immagination, that all knowledge was but remembrance; so Salomon giveth his sentence, that all novelty is but oblivion.
Francis Bacon: Essays, LVIII
"ORA-12154: TNS:could not resolve the connect identifier specified".
I checked the connection string and it seemed correct. I tried connecting with tnsping and then with sqlplus and they all succeed.
Then I checked the same program on my pc, and there it worked. At that moment a bell rang in my head. I came back at my colleague's desk and looked at the folder name in which the program was stored. It was "Jobtime WF (exe)".
It seems that Oracle OCI doesn't like path with parenthesis. Changing the folder name fixed the error.
I had already met this error in year 2000, when I started working with Oracle, but from then I forgot it. This kind of thing happened to me quite often.
I mean I often feel that some technical detail become new just because I forgot it.
It always reminds to me a quote used by epigraph by Borges, at the beginning of "El Aleph":
Salomon saith: There is no new thing upon the earth. So that as Plato had an immagination, that all knowledge was but remembrance; so Salomon giveth his sentence, that all novelty is but oblivion.
Francis Bacon: Essays, LVIII
Sunday, July 20, 2008
Back from Sicily!
We have been in Sicily the last week of June.
We started from Palermo and then moved to the beautiful "Riserva dello Zingaro" regional park.
After that we have spent three days in Favignana. We have been also to Erice, Segesta, Mozia and, finally, Selinunte.
I have just published on picasaweb a first album of photographs. This is the first time I use this feature and I must admit that ... it's funny !
Bye
PS
Oops I forgot the album link, here it is:
http://picasaweb.google.com/Nicola.Farina64/2008JuneSicily
We started from Palermo and then moved to the beautiful "Riserva dello Zingaro" regional park.
After that we have spent three days in Favignana. We have been also to Erice, Segesta, Mozia and, finally, Selinunte.
I have just published on picasaweb a first album of photographs. This is the first time I use this feature and I must admit that ... it's funny !
Bye
PS
Oops I forgot the album link, here it is:
http://picasaweb.google.com/Nicola.Farina64/2008JuneSicily
Thursday, June 19, 2008
Javascript include redux
Today I had little accident with my ASP.NET project.
I have a master page which includes some javascript files, and several pages derived from this master page. Today, to better organize my code, I created a sub-folder in which I moved some of these pages. After doing that, these pages were no more able to include my javascript files.
After some "googling".
The include line format was this:
src="Scripts/FmMaskStorico.js"
I tried adding the tilde character:
src="~/Scripts/FmMaskStorico.js"
But with no success. It seems that ASP.NET interprets the tilde character only for server controls, while leaving to the browser the handling of script includes like this.
Another option I found was using the syntax :
src="<%=Request.ApplicationPath%>/Scripts/FmMaskStorico.js"
Unfortunately I can't use this option since I create all controls dynamically and it seems that this is not compatible with the <% %> syntax.
Well at the end I resolved deleting the static includes in the master page aspx, substituting them with some
calls to Page.ClientScript.RegisterScriptInclude.
This way I got it.
Phew .....
I have a master page which includes some javascript files, and several pages derived from this master page. Today, to better organize my code, I created a sub-folder in which I moved some of these pages. After doing that, these pages were no more able to include my javascript files.
After some "googling".
The include line format was this:
src="Scripts/FmMaskStorico.js"
I tried adding the tilde character:
src="~/Scripts/FmMaskStorico.js"
But with no success. It seems that ASP.NET interprets the tilde character only for server controls, while leaving to the browser the handling of script includes like this.
Another option I found was using the syntax :
src="<%=Request.ApplicationPath%>/Scripts/FmMaskStorico.js"
Unfortunately I can't use this option since I create all controls dynamically and it seems that this is not compatible with the <% %> syntax.
Well at the end I resolved deleting the static includes in the master page aspx, substituting them with some
calls to Page.ClientScript.RegisterScriptInclude.
This way I got it.
Phew .....
Friday, June 13, 2008
Privileges to analyze another schema
Yesterday I wrote a small stored procedure to gather statistics for several schemas at a customer's site.
The procedure was very simple, but trying it gaves me error:
ORA-01031 insufficient privileges
I checked that the user I was using had the "analyze any" right. To be sure I granted it again.
But I still got the error.
The database was a 9.2.0.8. Even here Metalink at the rescue, with note 203220.1.
It turned out that there was a bug. The workaround to be applied was quite obvious:
grant select any table to my user.
Not the best from the security point of view, but it fits my needs..
So, once again, thanks Metalink!
The procedure was very simple, but trying it gaves me error:
ORA-01031 insufficient privileges
I checked that the user I was using had the "analyze any" right. To be sure I granted it again.
But I still got the error.
The database was a 9.2.0.8. Even here Metalink at the rescue, with note 203220.1.
It turned out that there was a bug. The workaround to be applied was quite obvious:
grant select any table to my user.
Not the best from the security point of view, but it fits my needs..
So, once again, thanks Metalink!
Sunday, June 8, 2008
Thanks Metalink!
This week I found a new (for me :-)) way to investigate Oracle problems.
We had a problem at a customer site with a new application. A query suddenly failed with very nasty error "not connected to Oracle". Same query runs smoothly at our office but we developed on 10.2 while this customer was still on 9.2.0.6
(by the way, not a very wise choice I suppose).
Anyway I had only little time to fix, the problem was blocking the first demo of this very important (for us) new app with the customer.
Firstly I gave a look in the core log. Initially I was a little hopeless because informations in there seemed a little confusing but looking at the stack trace
I had my idea of the week: looking at the following line:
------------------- Call Stack Trace ---------------------
Frameptr RetAddr Param#1 Param#2 Param#3 Param#4 Function Name
0x0a56b888 011c2fee 0a56b948 00000001 09849b10 050f7208 _qeruaRowProcedure+1
I guessed that a function called "qeruaRowProcedure" should have failed.
So I tried a search on Metalink by keyword qeruaRowProcedure and (voilĂ ) I found
quite some documents regarding problems with this function.
In one of them I found the workaround I was looking for, which was
setting the hidden parameter _complex_view_merging to false.
I immediately tried this workaround and it worked! The query started running again
and the new app demo was able to complete.
One thing to keep in mind: the first documents I read in my Metalink search were hopeless in the sense they stated that there was no workaround for the problem (unless upgrading go 11 which was impossibile for me at the moment: I had to fix the problem almost instantly....) but at last I found at least one doc with the above workaround. So the advice is: keep searching..
A couple of days after we had a similar accident, but this time at our office, with a developing instance of 10.2.0.4.
I applied the same technique: look in the stack trace in the core log, identify the failing function and search metalink.
This time the stack trace line was this:
Frameptr RetAddr Param#1 Param#2 Param#3 Param#4 Function Name
0x0cad7ad8 00eace2d 8152d9d8 09abd544 0e8f8b08 00000000 _delrefi+34
And the workaround was in this document:
ORA-7445 [Delrefi] Where Delete Occurs
Doc ID: Note:463899.1
In this doc there are actually a couple of workarounds:
#1 Set "_optimizer_join_elimination_enabled"=false .
or
#2 Apply the one off patch for this bug.
Since the note was about 10.2.0.3 and the db I was using was 10.2.0.4
I choose to follow #1.
Note that it seems you can't simply use:
alter session set "_optimizer_join_elimination_enabled"=false
because sqlplus gives error ("identifier is too long").
It seems to work as "alter system" only.
At the end I must say: thanks Metalink!
We had a problem at a customer site with a new application. A query suddenly failed with very nasty error "not connected to Oracle". Same query runs smoothly at our office but we developed on 10.2 while this customer was still on 9.2.0.6
(by the way, not a very wise choice I suppose).
Anyway I had only little time to fix, the problem was blocking the first demo of this very important (for us) new app with the customer.
Firstly I gave a look in the core log. Initially I was a little hopeless because informations in there seemed a little confusing but looking at the stack trace
I had my idea of the week: looking at the following line:
------------------- Call Stack Trace ---------------------
Frameptr RetAddr Param#1 Param#2 Param#3 Param#4 Function Name
0x0a56b888 011c2fee 0a56b948 00000001 09849b10 050f7208 _qeruaRowProcedure+1
I guessed that a function called "qeruaRowProcedure" should have failed.
So I tried a search on Metalink by keyword qeruaRowProcedure and (voilĂ ) I found
quite some documents regarding problems with this function.
In one of them I found the workaround I was looking for, which was
setting the hidden parameter _complex_view_merging to false.
I immediately tried this workaround and it worked! The query started running again
and the new app demo was able to complete.
One thing to keep in mind: the first documents I read in my Metalink search were hopeless in the sense they stated that there was no workaround for the problem (unless upgrading go 11 which was impossibile for me at the moment: I had to fix the problem almost instantly....) but at last I found at least one doc with the above workaround. So the advice is: keep searching..
A couple of days after we had a similar accident, but this time at our office, with a developing instance of 10.2.0.4.
I applied the same technique: look in the stack trace in the core log, identify the failing function and search metalink.
This time the stack trace line was this:
Frameptr RetAddr Param#1 Param#2 Param#3 Param#4 Function Name
0x0cad7ad8 00eace2d 8152d9d8 09abd544 0e8f8b08 00000000 _delrefi+34
And the workaround was in this document:
ORA-7445 [Delrefi] Where Delete Occurs
Doc ID: Note:463899.1
In this doc there are actually a couple of workarounds:
#1 Set "_optimizer_join_elimination_enabled"=false .
or
#2 Apply the one off patch for this bug.
Since the note was about 10.2.0.3 and the db I was using was 10.2.0.4
I choose to follow #1.
Note that it seems you can't simply use:
alter session set "_optimizer_join_elimination_enabled"=false
because sqlplus gives error ("identifier is too long").
It seems to work as "alter system" only.
At the end I must say: thanks Metalink!
Subscribe to:
Posts (Atom)