Franck- is the sid you are supplying a valid sid from oracle server *verify from tnsnames.ora* are you sure you want to use a Type4 driver to connect as SYSDBA (instead of plain 'user' )
Martin ______________________________________________ Disclaimer and confidentiality note Everything in this e-mail and any attachments relates to the official business of Sender. This transmission is of a confidential nature and Sender does not endorse distribution to any party other than intended recipient. Sender does not necessarily endorse content contained within this transmission. > To: [email protected] > From: [EMAIL PROTECTED] > Subject: Re: Solaris 10 - problem with connect to Oracle 10.2.0.2 with > ORA_SYSDBA > Date: Tue, 5 Aug 2008 23:25:52 -0700 > > Thanks ! > > The first solution (SIGCHILD) works well for me (I only use system > after disconnect to DBI) > I will test "BEQUEATH_DETACH = YES" soon. > > Other solution who works for me --> connect with sys user : > $dbh = DBI->connect("dbi:Oracle:host=$ENV{HOSTNAME};sid= > $ENV{ORACLE_SID}","sys","PWD_SYS",{ ora_session_mode => ORA_SYSDBA}) > > On 31 juil, 22:43, [EMAIL PROTECTED] (Martin J. Evans) wrote: > > olwin wrote: > > > Sorry for my poor English. > > > > > After connect in SYSDBA to an Oracle 10.2.0.2 Database, all system > > > command return '-1' (No child processes). > > > > > Problem detect on a Solaris 10 x86 server : > > > > > Details : > > > perl -MDBI -e 'DBI->installed_versions' > > > Perl : 5.008006 (i86pc-solaris-thread-multi) > > > OS : solaris (2.10) > > > DBI : 1.42 > > > DBD::Sponge : 11.10 > > > DBD::Proxy : 0.2004 > > > DBD::Oracle : 1.15 > > > DBD::File : 0.30 > > > DBD::ExampleP : 11.12 > > > DBD::DBM : 0.01 > > > > > It's a production server, I can't upgrade DBD::Oracle for the moment. > > > It's the first application on the server to use perl,others only use > > > shell/sqlplus > > > > > This code will show the problem : > > > > > use DBD::Oracle qw(:ora_session_modes); > > > > > my $dsn = "dbi:Oracle:"; # no dbname here > > > print "TWO_TASK not defined\n" if (not defined($ENV{TWO_TASK})); > > > print "ORACLE_SID : $ENV{ORACLE_SID} \n"; > > > > > my $dbh = DBI->connect($dsn, "", "", { ora_session_mode => > > > ORA_SYSDBA }); > > > $dbh->{RaiseError} = 1; > > > > > my $sth = $dbh->prepare( "select sysdate from dual" ); > > > $sth->execute(); > > > my $date=$sth->fetchrow(); > > > print "Date : $date \n"; > > > $sth->finish(); > > > $dbh->disconnect(); > > > > > my $ret=system("date"); > > > > > print "retour : $ret"; > > > > > Result on my machine : > > > TWO_TASK not defined > > > ORACLE_SID : KJD00 > > > Date : 30-JUL-08 > > > mercredi, 30 juillet 2008, 14:32:22 MEST > > > retour : -1 > > > > > Get you the same result as me? > > > > At first glance it seemed to me that this has nothing to do with > > DBD::Oracle or DBI and did not belong on this list. However, you are > > using the system command and given it returns -1 it failed. If you use > > the system command like above, it forks, issues your command and does a > > wait for the child to exit (this may depend on SIGCHILD signal). The > > oracle client libraries fiddle with SIGCHILD handling - presumably > > because it wants to know a SIGCHILD signals. You probably want to return > > SIGCHILD behaviour back to the default but you should realise this may > > impact on the oracle client libraries. The following link might help > > explain some of this but I cannot recollect a definite solution for > > system in perl and Oracle: > > > > http://www.easysoft.com/support/kb/kb00967.html > > > > This link looks promising: > > > > http://coding.derkeiler.com/Archive/Perl/perl.dbi.users/2008-06/msg00... > > > > which mentions > > > > BEQUEATH_DETACH = yes > > > > Martin- Masquer le texte des messages précédents - > > > > - Afficher le texte des messages précédents - > _________________________________________________________________ Get more from your digital life. Find out how. http://www.windowslive.com/default.html?ocid=TXT_TAGLM_WL_Home2_082008
