$nano /etc/apt/sources.list
$sudo nano /etc/profile
добавляем:
Внимание!
На самом деле, если у вас Oracle установлен мо умолчанию, то переменную NLS_LANG лучше записать как вывод скрипта nls_lang.sh,
но часто NLS_LANG не соответствует стандартным региональным настройкам. Например у меня это AMERICAN_AMERICA.
Далее настраиваем алиасы:
sudo nano /etc/tnsnames.ora
Ставим редство управления "Tora"
Дело в том, что просто установить тору из репозитария - это мало. По умолчанию она не подключиться к ораклу, так как не будет в своем составе иметь нужного провайдера.
Ее нужно скомпилировать.
Если у вас указаны все необходимые переменные, о которых идет речь выше, то при сборке Make-файла все произойдет автоматом, руками ничего указывать не надо.
PERL
Для написаний скриптов на PERL - необходимо установить соответствующие модули: DBI и DBD.
с DBI проблем не возникнет, он ставиться из репозитария
С DBD сложнее:
Под рутом
Пример работы
deb http://oss.oracle.com/debian unstable main non-free
$wget http://oss.oracle.com/el4/RPM-GPG-KEY-oracle -O- | sudo apt-key add -
$ sudo apt-get update
$ sudo apt-get install oracle-xe-client
$ sudo apt-get install oracle-xe-client
$sudo nano /etc/profile
добавляем:
export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/client
export NLS_LANG=AMERICAN_AMERICA.UTF8
#export NLS_LANG=`$ORACLE_HOME/bin/nls_lang.sh`
export SQLPATH=$ORACLE_HOME/sqlplus
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export NLS_LANG=AMERICAN_AMERICA.UTF8
#export NLS_LANG=`$ORACLE_HOME/bin/nls_lang.sh`
export SQLPATH=$ORACLE_HOME/sqlplus
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
Внимание!
На самом деле, если у вас Oracle установлен мо умолчанию, то переменную NLS_LANG лучше записать как вывод скрипта nls_lang.sh,
Код:
export NLS_LANG=`$ORACLE_HOME/bin/nls_lang.sh`
но часто NLS_LANG не соответствует стандартным региональным настройкам. Например у меня это AMERICAN_AMERICA.
Далее настраиваем алиасы:
sudo nano /etc/tnsnames.ora
MYSRV =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.7)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = MYSERVICE)
)
)
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.7)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = MYSERVICE)
)
)
Ставим редство управления "Tora"
Дело в том, что просто установить тору из репозитария - это мало. По умолчанию она не подключиться к ораклу, так как не будет в своем составе иметь нужного провайдера.
Ее нужно скомпилировать.
Если у вас указаны все необходимые переменные, о которых идет речь выше, то при сборке Make-файла все произойдет автоматом, руками ничего указывать не надо.
$apt-get build-dep tora
$apt-get source tora
$apt-get source tora
PERL
Для написаний скриптов на PERL - необходимо установить соответствующие модули: DBI и DBD.
с DBI проблем не возникнет, он ставиться из репозитария
Код:
sudo apt-get -nstall libdbi-perl
С DBD сложнее:
Под рутом
#perl -MCPAN -e shell
cpan> get DBD::Oracle
cpan> quit
cpan> quit
$cd /root/.cpan/build<каталог с исходниками>
$Makefile.PL
$make
$make install
$Makefile.PL
$make
$make install
Пример работы
#!/usr/bin/perl
$oracle_server="server";
$oracle_listener="listener";
$oracle_sid="SID";
$oracle_port="PORT";
$oracle_user="user";
$oracle_password="password";
$oracle_testing_table="TABLE";
use DBI;
use DBD::Oracle;
use utf8;
binmode(STDIN, ':utf8');
binmode(STDOUT, ':utf8');
my $dbh = DBI->connect("dbi:Oracle:host=$oracle_server;port=$oracle_port;sid=$oracle_sid",
$oracle_user, $oracle_password)
or die "Impossible de se connecter &覘 la base Oracle : " . DBI->errstr;
my $sth = $dbh->prepare("SELECT * FROM $oracle_testing_table")
or die "Impossible de preparer la requette: " . $dbh->errstr;
$sth->execute()
or die "Impossible d'ex&覡cuter la requette: " . $sth->errstr;
while ( my @data = $sth->fetchrow_array() )
{
my $firstname = $data[1];
my $id = $data[2];
print "\t$id: $firstname $lastname\n";
}
if ($sth->rows == 0)
{
print "Table vide\n";
}
$sth->finish;
$dbh->disconnect;
$oracle_server="server";
$oracle_listener="listener";
$oracle_sid="SID";
$oracle_port="PORT";
$oracle_user="user";
$oracle_password="password";
$oracle_testing_table="TABLE";
use DBI;
use DBD::Oracle;
use utf8;
binmode(STDIN, ':utf8');
binmode(STDOUT, ':utf8');
my $dbh = DBI->connect("dbi:Oracle:host=$oracle_server;port=$oracle_port;sid=$oracle_sid",
$oracle_user, $oracle_password)
or die "Impossible de se connecter &覘 la base Oracle : " . DBI->errstr;
my $sth = $dbh->prepare("SELECT * FROM $oracle_testing_table")
or die "Impossible de preparer la requette: " . $dbh->errstr;
$sth->execute()
or die "Impossible d'ex&覡cuter la requette: " . $sth->errstr;
while ( my @data = $sth->fetchrow_array() )
{
my $firstname = $data[1];
my $id = $data[2];
print "\t$id: $firstname $lastname\n";
}
if ($sth->rows == 0)
{
print "Table vide\n";
}
$sth->finish;
$dbh->disconnect;
Комментариев нет:
Отправить комментарий