【Oracle】ADD_MONTHS関数について
あんまりoracleで日付の(特に「月」の)操作を個人的にすることがなかったのでよく知らなかったが、
add_monthsでちょっと困ったのでメモ
あんまりoracleで日付の(特に「月」の)操作を個人的にすることがなかったのでよく知らなかったが、
add_monthsでちょっと困ったのでメモ
IEでfancyboxをservletで呼び出したり、もしくはfancyboxからservletを呼び出したりすると、
昔で言うところの「砂時計」にあたる待機中表示が消える(待機中表示にならなくなる)。
特定のケースでは一時的に待機中表示が出たりもするが、これに関してもサーバ側の処理が終わる前に必ず消える。
fancyboxを使わない限りは、待機中表示は処理中であれば消えたりしないので、fancyboxを絡めた場合にだけどうもこうなってしまう。
ただ、Google ChromeとFire Foxはfancyboxがあってもちゃんと待機中表示してくれる。どうもIEだけのようだ。
うん、「また」なんだ。すまない。(´・ω・`)
まあ結構アレな(稀有な)使い方のようにも思えるから普通は起きないのかなあ~
でも俺起きて困ったんだよなあ~
SOAPで接続していた連携先のシステムに、ある日突然つながらなくなった。
SOAP連携の処理で接続しようとすると以下のようなJavaのStackTraceが出てくる。
… Caused by: java.lang.RuntimeException: Could not parse key values at sun.security.pkcs11.P11Key$P11ECPublicKey.fetchValues(P11Key.java:1000) at sun.security.pkcs11.P11Key$P11ECPublicKey.getW(P11Key.java:1021) at com.sun.net.ssl.internal.ssl.ECDHClientKeyExchange.<init>(ECDHClientKeyExchange.java:40) at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverHelloDone(ClientHandshaker.java:779) at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:238) at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:593) at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:529) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:958) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1203) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1230) ... 89 more Caused by: java.io.IOException: extra data given to DerValue constructor at sun.security.util.DerValue.init(DerValue.java:368) at sun.security.util.DerValue.<init>(DerValue.java:277) at sun.security.pkcs11.P11Key$P11ECPublicKey.fetchValues(P11Key.java:991) ... 98 more …
Java1.6/OS:Solaris。
ただ、なぜかJava1.6/OS:Windowsだと問題なく動く。(JavaのVerは同じでOSだけ違う)
「とにかく何が何でもそこから先の処理にいってほしくない」という場合、
処理を強制的に中断させる目的で無条件にExceptionをthrowするようなコーディングするとコンパイルエラーになる。
ただこれにちょっと手を加えることで、誰がどう見ても明らかに絶対そこで落ちるにも関わらず
結果的に強制処理中断するロジックとして成立させることができる。
あるテーブルをつくる(Createする)とき、既存テーブルの項目定義情報をそのまま流用したいときがある。
そのとき、いちいち流用したいテーブルの項目定義調べてCreate文書くのが面倒だったりするので、
Select+Createの要領で、かつ「絶対に結果が返ってこない条件」を意図的に書くことで、
テーブルの項目定義を簡単に流用することができる。
正直個人的にあんまり区別つけずに使っていたがなんとなくわかってきたので備忘的にメモ
UNIXで適当な環境変数「var」を用意してそいつを使う場合、
var="aaa"echo $var ←①
echo ‘$var’ ←②
としたとき、①と②は結果が違う。
$ aaa ←① $ $var ←②
ってなる。
つまり②は評価してほしい変数の中身ではなく評価式(っていうの?よくしらんが)がそのまま出る。
シングルクォーテーションで囲うと、中に変数を書こうが、書かれた文字列をそのまま扱うという動きをするのだ。
(今さらながら思い知った)
javascriptの文字列変数にソースコード上でそれとわかるような形で改行いれるとページ全体がなんかおかしなことになる。
少なくとも、その変数使ってるjavascriptは動かなくなるようだ。
まあ普通に考えるとそういうもんだろう。
個人的な感覚でいうと、変数に固定の文字列埋め込むケースではコーディングミス(誤記、というか)以外に考えられらない。
だから普通発生しないはずである。
ただ実際に発生して困ったので備忘録として残す。
input type="file"でファイルを選択すると、選択されたファイルが実際に位置しているローカルディスクのフルパスとは違うパス値として自動的にC:\fakepath\(選択したファイル名)に変換されることがある。
ググってみると昨今のブラウザのセキュリティ仕様で勝手にそういう風に変換されるらしい。
ただこれはブラウザ毎にも少し異なる動きをするし、ローカルのHTMLを直接ブラウザで開いた場合やサーバ上に存在するHTMLを開いた場合でも異なる。
実験して分かった範囲をまとめてみる。
Servletでファイルダウンロードさせる実装のメモ
と、ダウンロードファイル名に関するちょっとした実験の結果
ダウンロードの動きを取るかどうかは、最終的にはブラウザに依存するようだが、
レスポンスヘッダ「Content-Disposition」に「attachment」をいれてやり、
かつファイルの種類によって適切なContent-typeを指定することで、
ダウンロードの動きになるようである。