2013年11月22日金曜日

tnsname.ora設定無しでsqlplus

Oracleを使っている時の不満の一つがtnsname.ora。
ODBCで接続する場合ですら管理者権限が必要なtnsname.oraにHost名などを記述する必要がある。

例えばこんなぐらいに定義が必要です。
POD =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = PODS.GATE.COM)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SID = ODS)
    )
  )
sqlplusからこれを使って接続する場合は
sqlplus user/password@pod
で接続出来ます。

で、問題はtnsname.oraを編集したく無い場合。Windowsでは
  • Oracle 8i, 9i
    sqlplus user/password@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=PODS.GATE.COM)(PORT=1521)))(CONNECT_DATA=(SID=ODS)))
        
  • Oracle 10g(R2?)以降
    sqlplus USER/PASSWORD@//PODS.GATE.COM:1521/ODS
あ〜、すっきりした。

参照:Ask Tom "How to connect SQLPlus without tnsnames.ora"

2013年11月16日土曜日

root権限無しでPerlモジュールを使う

色々な方法はあるようですが、local::libすらない環境でもPerlモジュールを使う方法があっりました。

CPANMをインストール
wget --no-check-certificate -O- http://cpanmin.us | perl - -l ~/perl5 App::cpanminus local::lib
# モジュールをインストール。 例ではMojoliciousを入れました。 
cd ~/perl5/bin
./cpan Mojolicious

環境変数に自分のパスを設定。
setenv PERL5LIB ~/perl5/lib/perl5
# 動作確認
./mojo get www.google.com
環境変数を使わない場合でもPerlスクリプトの先頭で読み込ませる事が出来ます。
#!/usr/local/bin/perl 

BEGIN {
  push ( @INC, '/yourhome/perl5/lib/perl5');
};
use Mojolicious::Lite;

FreeBSDにPerl, curl, Mojoliciousをインストール

ひょんな事からFreeBSDにMojoliciousをインストールする必要があったのでメモ。

OS : FreeBSD 9.1 amd64

rootでログインして作業
 
# Perl 5.16をインストール
cd /usr/ports/lang/perl5.16
make
make install

# Curlをインストール
pkg_add -r curl

# Mojoliciousをインストール
curl get.mojolicio.us | sh

#動作確認
mojo get www.google.com