2014
ORACLEの面倒な仕様(分散トランザクション)
1つのトランザクション内で
DBリンク経由等から異なるインスタンスのデータを"参照"(SELECT)した場合、
そのトランザクションは「分散トランザクション」になる。
通常のJDBCからの接続(OracleDataSourceとか)でもそうなる。
ただOracleXADataSourceからConnectionつくると
「別インスタンスの」という条件を満たさなくても分散トランザクションになる。
バックグラウンドプロセス発行して自前の多重処理を組む
UNIXのwhileはこんな感じで書く。
while [ 判定文 ]
do
#処理を記述
done
while :
do
#処理を記述
done
後者の方は判定文がないので無限ループになる。
意図的に中でbreakしないと抜けられない。
ただ個人的にはよく後者の方を使う。
word-break問題
【Microsoft Excel】SUMPRODUCTによる条件付き集計
よく知られてるところだが
個人的にいつか忘れたときのための備忘録とする
(SEメモは全部そうなんだが)
【ORACLE】長時間流れているSQLの処理状況を調査
※経験則に基づくものであり、ORACLEの仕様を把握して書いてるわけではないです
投げたSQL(SELECT文とか)が全然かえってこないという場合
下記2つの見方でそのSQLの進行状況がある程度把握できる
(1)V$SESSION.SEQ#が変化するか
UPDATEやDELETEなどを実行したのにいつまでたっても終わらない場合、
先に該当レコードや表が掴まれている(LOCKされている)可能性がある。
その場合、「待たされてるほう」のセッションは先行セッションのLOCK解放待ちになり、
その間V$SESSION.SEQ#が同じ値のまま動かなくなる。
逆に言うと、V$SESSION.SEQ#が見るたび変化してるようなら、
そのセッションはちゃんと動いている。(少なくともLOCK解放待ちではない)
この数値の変動具合が大きいほど進み具合が大きいような気がするが、
詳しい仕様はよくしらない。
また、特殊なケースではこの数値が変化していても
実際は全然進んでいない というようなこともある。
⇒元表に項目追加したことによる関連マテビューのリフレッシュ等で
この現象を目にしたことがある。
SEQ#が動いてるので放置してたら
6時間以上経っても終わらなかった(普段2時間くらい)ので強制KILLした
あと、この数値は65535あたりを境に0に戻ってループし始める。
このあたりは実体験に基づくものであり、正確な仕様はわからない。
【Microsoft Excel】マクロ構文
EXCELのショートカットキー
Spanタグのonclickを指定して別要素のclick呼び出すとGoogle Chromeでは機能しない
「IEだと動くがGoogle Chromeだと動かない」というタイプのネタ
spanタグにonclickを指定して、その中で直接JS呼び出せば機能するが、
そこから別の(例えばhidden)要素を無理やりclickするような指示を出すと機能しない。
下記のケースで機能するのは①のみ。
①
<span onClick="alert('Span Tag Click.');" style="background-color: #FFFF00">Span Tag test.</span>
②
<input type="hidden" name="hidden_obj1" onClick="alert('span to hidden_obj1 click.')" >
<span onClick="hidden_obj1.click();" style="background-color: #FF00FF">Span Tag test(->hidden1 click).</span>
③
<input type="hidden" name="hidden_obj2" onClick="alert('span to hidden_obj2 click.')" >
<span onClick="hidden_obj2.onclick();" style="background-color: #0FFFFF">Span Tag test(->hidden2 'on'click).</span>
JAVAソースコードメモ(ファイル操作)
String CURRENT_DIR = new File(".").getAbsoluteFile().getParent();
現在ディレクトリのフルパスを取得する
String FILE_SEP = System.getProperty(“file.separator”);
パス区切り文字を取得する
これはシステム依存なので、
Windowsならバックスラッシュ(\)だし、
UNIX系ならスラッシュ(/)を得ることができる。
String LINE_SEP = System.getProperty(“line.separator”);
改行コードを取得する
これはシステム依存なので、
WindowsならCRLFだし
UNIX系ならLFを得ることができる。