BUG #5994: Can't excute DBI->connect to oracle by client site

Поиск
Список
Период
Сортировка
От Li Hongbing
Тема BUG #5994: Can't excute DBI->connect to oracle by client site
Дата
Msg-id 201104260936.p3Q9aZTP029148@wwwmaster.postgresql.org
обсуждение исходный текст
Ответы Re: BUG #5994: Can't excute DBI->connect to oracle by client site  (Robert Haas <robertmhaas@gmail.com>)
Список pgsql-bugs
The following bug has been logged online:

Bug reference:      5994
Logged by:          Li Hongbing
Email address:      lihongbing@intasect.com.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@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

В списке pgsql-bugs по дате отправления:

Предыдущее
От: Bruce Momjian
Дата:
Сообщение: Re: Setting timezone: is it bug or intended?
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Setting timezone: is it bug or intended?