最近、Excelのシート間でデータを探す機会が多いのですが
一々VLOOKUPとかを使うのが面倒になってきたので、
Excelファイルに対してSQLを実行、データ表示するツールを作ってみました。
# 誰得?(笑)
とりあえず、scott.xlsxを用意。(Oracleのアレ)
■EMPシート
■DEPTシート
■作ったツールでSQLを実行した結果
こんな感じ。
そのうち、ファイル間でも検索できるようにしたいなぁ。
2015年3月26日木曜日
2015年3月13日金曜日
[Java] 重複排除速い。。
Oracleにあるデータを重複排除しようと思ってDISTINCTをかけると
10分以上返ってこない、という状況が発生。
DISTINCTしなければ数秒で返ってくるので、プログラム的になんとかしてみようと
Javaを選択。(ほぼ初心者)
とりあえずDISTINCTしないでデータをテキストに出力して
List<String>で読み込み、HashSetにつっこんで回してみたところ
あっという間に重複排除した結果が得られました。
Javaのちからってすげー!
10分以上返ってこない、という状況が発生。
DISTINCTしなければ数秒で返ってくるので、プログラム的になんとかしてみようと
Javaを選択。(ほぼ初心者)
とりあえずDISTINCTしないでデータをテキストに出力して
List<String>で読み込み、HashSetにつっこんで回してみたところ
あっという間に重複排除した結果が得られました。
Javaのちからってすげー!
2015年3月10日火曜日
[Oracle] ある月の日付一覧を取得するSQL
とあるテーブルのデータを、休日も含めて(休日はレコードなし)
出力したいという要望があったので、日付一覧をとるSQLを覚書。
Oracle以外の場合は、編集が必要ですね。。
出力したいという要望があったので、日付一覧をとるSQLを覚書。
SELECT TO_CHAR(TO_DATE(:TARGET_MONTH, 'YYYY/MM') + ROWNUM - 1, 'YYYY/MM/DD') FROM "31レコード以上ある適当なテーブル/ビュー" WHERE ROWNUM <= EXTRACT(DAY FROM LAST_DAY(TO_DATE(:TARGET_MONTH, 'YYYY/MM'))) |
Oracle以外の場合は、編集が必要ですね。。
2015年3月3日火曜日
[Linux] mailコマンドでメール送信すると本文にヘッダ情報が混入する
シェルから自動送信されるメールの本文に User-Agent とかの
ヘッダ情報が混入されてしまう現象を確認、解決したので覚書。
■環境
SUSE Linux Enterprise Server 11 (x86_64)
■変更前
■変更後
調べてもあまり有用な情報がなく大変でした。。
Linuxのディストリビューションによっても動作が異なりそう。
ヘッダ情報が混入されてしまう現象を確認、解決したので覚書。
■環境
SUSE Linux Enterprise Server 11 (x86_64)
■変更前
send_mail() { from=$1 to=$2 inputEncoding="utf-8" outputEncoding="iso-2022-jp" subjectHead="=?${outputEncoding}?B?" subjectBody="`echo "$3" | iconv -f ${inputEncoding} -t ${outputEncoding} | base64 | tr -d '\n'`" subjectTail="?=" subjectAll=${subjectHead}${subjectBody}${subjectTail} echo "$contents" | mail -s "$subjectAll" "$to" -- -f "$from" return $? } from="from@hoge.hoge" to="to@hoge.hoge" subject="件名" contents="本文" send_mail "$from" "$to" "$subject" "$contents" if [ $? -eq 1 ]; then echo "send mail failure" exit 1 fi echo "send mail success" |
■変更後
send_mail() { from=$1 to=$2 inputEncoding="utf-8" outputEncoding="iso-2022-jp" # subjectHead="=?${outputEncoding}?B?" # subjectBody="`echo "$3" | iconv -f ${inputEncoding} -t ${outputEncoding} | base64 | tr -d '\n'`" # subjectTail="?=" # subjectAll=${subjectHead}${subjectBody}${subjectTail} contents=`echo -e "$4"` #| iconv -f ${inputEncoding} -t ${outputEncoding}`" # echo "$contents" | mail -s "$subjectAll" "$to" -- -f "$from" echo "$contents" | mail -s "$3" "$to" -- -f "$from" return $? } from="from@hoge.hoge" to="to@hoge.hoge" subject="件名" contents="本文" send_mail "$from" "$to" "$subject" "$contents" if [ $? -eq 1 ]; then echo "send mail failure" exit 1 fi echo "send mail success" |
調べてもあまり有用な情報がなく大変でした。。
Linuxのディストリビューションによっても動作が異なりそう。
登録:
投稿 (Atom)