揮発性のメモ2

知識をメモ書きしておく

TNSの設定

複数のOracleサーバに接続する場合、tnsnames.oraに追加する

HOGE =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.10)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = hoge)
    )
  )

PIYO =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.11)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = piyo)
    )
  )

OracleでLIMITを実装する

MySQLとかにあるLIMITをなるべく原型を留めてOracle用に書き換える

  SELECT a,b,c FROM hoge ORDER BY a
    LIMIT 10,20;

SELECT * FROM ( SELECT rownum rnum, tmpt.* FROM ( 
  SELECT a,b,c FROM hoge ORDER BY a 
) tmpt ) WHERE rnum>10 AND rnum<=10+20 ORDER BY rnum;

出力結果に、オリジナルにはないrnumが混ざるが無視する。最後のORDER BYは保険。

oracleユーザーに対するシェル制限の設定

/etc/security/limits.confに次の行を付け加える

oracle    soft    nproc   2047
oracle    hard    nproc   16384
oracle    soft    nofile  1024
oracle    hard    nofile  65536

全ユーザの設定を変える気はないので、oracleユーザの制限のみを変更する


/etc/profileに次の行を付け加える

if [ $USER = "oracle" ]; then
    if [ $SHELL = "/bin/bash" ]; then
        ulimit -u 16384 -n 65536
    fi
fi

bash以外のシェル環境は無視する

OCIライブラリが初期化されていません

osqleditを起動するときに
「OCIライブラリが初期化されていません」と出る。
⇒パスが狂ってるので、環境変数PATHにOracleインストール先を追加する


hoge.bat

PATH=%PATH%;D:\Oracle\product\10.1.0\Client_2\BIN
osqledit.exe memo.sql