1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
sub available_databases { my ( $self, $dbh ) = @_; my @sids = (); #? my $databases = \@sids; return $databases; } sub get_db_handle { my ( $self, $db, $connect_parameter ) = @_; # $db == chosen SID my $obj_db_cred = App::DBBrowser::DB_Credentials->new( { connect_parameter => $connect_parameter, plugin_api_version => $self->plugin_api_version() } ); my $user = $obj_db_cred->get_login( 'user' ); my $passwd = $obj_db_cred->get_login( 'pass' ); my $dsn = "dbi:$self->{db_driver}:"; if ( exists $ENV{ORA_DRCP} ) { $dsn .= $sid; } else { my $host = $obj_db_cred->get_login( 'host' ); my $port = $obj_db_cred->get_login( 'port' ); $dsn .= "host=$host;" if length $host; $dsn .= "sid=$db;"; $dsn .= "port=$port;" if length $port; } my $dbh = DBI->connect( $dsn, $user, $passwd, { PrintError => 0, RaiseError => 1, AutoCommit => 0, ShowErrorStatement => 1, %{$connect_parameter->{attributes}}, } ) or die DBI->errstr; return $dbh; }
my ( $self, $db, $connect_parameter ) = @_; # $db == chosen SID
1 2 3 4 5 6 7 8 9
sub foo{ my $self = shift; my %args = ( sid => undef, host => 'localhost', base => '', param => {}, @_); }
2015-02-03T07:48:14 rostiBei Oracle muss (nach meinem letzten Kenntnisstand) die Binary für den Client lokal installiert und eine bestimmte System-Umgebungs-Variable gesetzt sein.
2015-02-03T08:21:06 KuerbisKannst du mir sagen, was die Binary für den Client ist.
2015-02-03T08:21:06 KuerbisUnd ist es bei Oracle möglich, die vorhandenen SIDs abzufragen, wie ich z.B. bei MySQL die Datenbanken mit "SELECT schema_name FROM information_schema.schemata" abfragen kann oder muss man die SIDs einfach wissen?
SELECT GLOBAL_NAME FROM GLOBAL_NAME;
SELECT USERNAME FROM ALL_USERS;