From: | "Li Hongbing" <lihongbing(at)intasect(dot)com(dot)cn> |
---|---|
To: | pgsql-bugs(at)postgresql(dot)org |
Subject: | BUG #5994: Can't excute DBI->connect to oracle by client site |
Date: | 2011-04-26 09:36:35 |
Message-ID: | 201104260936.p3Q9aZTP029148@wwwmaster.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
The following bug has been logged online:
Bug reference: 5994
Logged by: Li Hongbing
Email address: lihongbing(at)intasect(dot)com(dot)cn
PostgreSQL version: PostgreSQL 8.4.
Operating system: x86_64_unknonwn_linux_gnu
Description: Can't excute DBI->connect to oracle by client site
Details:
I am trying to create a 64-bit postgresql 8.4 database server which can
retrieve data from Oracle(10gR2) at an other server by DBI-LINK.
DBI-LINK works good on postgresql server site when I connect to linux by
telnet.When I connect to postgresql server by postgresql client just like
pgAdmin or EMS SQL Manager,I got a error like this:
error from Perl function "set_up_connection": DBI
connect('host=192.168.138.173;sid=smmacs;port=1521','rmtrsys',...) failed:
ORA-24327: need explicit attach before authenticating a user (DBD ERROR:
OCISessionBegin) at line 43 at line 35.
so I write test code to confirm DBI connect function
CREATE OR REPLACE FUNCTION dbi_link.test2()
RETURNS char AS
$BODY$
use DBI;
use DBD::Oracle;
my $dbname = 'xxx';
my $user = 'rmtrsys';
my $passwd = 'rmtrsys';
my $dbh =
DBI->connect("dbi:Oracle:host=192.168.138.173;sid=smmacs;port=1521", $user,
$passwd,{ora_charset => 'UTF8'}) or
die "Database connection not made: $DBI::errstr";
$dbh -> disconnect;
return "OK";
$BODY$
LANGUAGE 'plperlu' VOLATILE
COST 100;
When I connect to linux by telnet and excute psql -d dbi_link_test to run,it
works good
dbi_link_test=# select dbi_link.test2();
test2
-------
OK
(1 row)
But when I connect by postgresql client (pgAdmin or EMS SQL Manager) to run
same sql, it returned an error:
NOTICE: DBI
connect('host=192.168.138.173;sid=smmacs;port=1521','rmtrsys',...) failed:
ORA-24327: need explicit attach before authenticating a user (DBD ERROR:
OCISessionBegin) at line 10
ERROR: error from Perl function "test2": Database connection not made:
ORA-24327: need explicit attach before authenticating a user (DBD ERROR:
OCISessionBegin) at line 10.
********** エラー **********
ERROR: error from Perl function "test2": Database connection not made:
ORA-24327: need explicit attach before authenticating a user (DBD ERROR:
OCISessionBegin) at line 10.
SQLステート:XX000
when got this error,I can't shutdown the server normally,ths shutdown
command will not terminate unless I cancel it.
[postgres(at)localhost ~]$ pg_ctl stop -D /usr/local/pgsql/data
waiting for server to shut down...LOG: received smart shutdown request
.LOG: autovacuum launcher shutting down
..........................
Above test let me know the DBI-LINK crushed by DBI->connect, I think the
really reason is one of these:
1.postgresql create backend process has a bug,most likely with bad process
environment var
2.Orace OCI functions has a bug
3.DBD:Oracle has a bug
However,I should report this as a postgresql bug ,becourse of run same sql
must get same result anywhere(server or client).
Versions:
Oracle-10.2.0.1.0
DBI-1.616
DBD-Oracle-1.28
YAML-0.72
perl, v5.8.8 built for x86_64-linux-thread-multi
Regards,
Li Hongbing,China
From | Date | Subject | |
---|---|---|---|
Next Message | Michael Musgrove | 2011-04-26 10:01:05 | Re: BUG #5297: Add XATMI C API |
Previous Message | Dave Page | 2011-04-26 09:14:47 | Re: BUG #5800: "corrupted" error messages (encoding problem ?) |