タグ

ブックマーク / www.ne.jp (27)

  • オラクル実行計画メモ(Hishidama's Oracle Explain Memo)

    S-JIS[2007-12-30/2010-10-23] 変更履歴 Oracle実行計画 OracleSQLがどのように実行されるか(実行計画)を確認する方法。 事前準備(PLAN_TABLE作成) [2008-02-06] EXPLAIN文 [2008-02-06] autotrace 統計情報の取得 [/2010-10-23] →ヒントの使用 [2008-04-29] PLAN_TABLE 実行計画を照会するには、PLAN_TABLEというテーブルが必要になる。[2008-02-06] このテーブルは以下のコマンド(スクリプトファイルの実行)で作成する。 > cd C:\oracle\ora92\rdbms\admin > sqlplus scott/tiger @utlxplan.sql > sqlplus scott/tiger SQL> @ ?\rdbms\admin\utlx

    areyoukicking
    areyoukicking 2014/05/19
    set autotrace on
  • Ant「native2asciiタスク」メモ(Hishidama's ant-native2ascii Memo)

    ディレクトリの中のファイルを変換して別のディレクトリに入れる例 build.xml: <?xml version="1.0" encoding="Shift_JIS"?> <project name="eval_native2ascii" default="native2ascii" basedir=".." > <target name="property_copy"> <native2ascii src="src" dest="classes"> <!-- <exclude name="**/*.java" />--> <include name="**/*.txt" /> <include name="**/*.properties" /> </native2ascii> </target> </project> この例では、srcディレクトリ配下にある拡張子txtとproperti

  • Ant「property」メモ(Hishidama's ant-property Memo)

    property 主な属性一覧 [/2008-11-08] プロパティーに値を直接指定する プロパティーにディレクトリ名やファイル名を指定する プロパティーファイルを読み込む [2007-02-21] 環境変数を読み込む tstamp 日付や時刻を取得する [2007-09-07] pathconvert パスを変換する [2010-01-09] length・resourceCount 文字列やファイルサイズ [2009-02-06] ファイル数 [2009-02-06] loadFile テキストファイルを読み込む [2008-10-25] propertyFile プロパティーファイルを作成する [2007-09-07] 定義したプロパティーを使用したい箇所では、「${プロパティー名}」とする。 (「${」があって「}」が無いとエラーになる) 「$」の文字そのものを(プロパティーの開

  • Ant「taskdefタスク」メモ(Hishidama's ant-taskdef Memo)

    単純な例 <taskdef name="hoge" classname="jp.hishidama.Hoge"/> <target name="sample"> <hoge/> </target> jcoverageの例 <?xml version="1.0" encoding="Shift_JIS"?> <project name="sample" default="default" basedir=".."> <path id="jcoverage"> <fileset dir="./lib"> <include name="*.jar"/> ←この中の1つがjcoverage.jar </fileset> </path> <taskdef classpathref="jcoverage" resource="tasks.properties"/> <target name="defa

    areyoukicking
    areyoukicking 2014/04/09
    Target "report" does not exist in the project
  • インターフェロン治療体験記

  • Scala 検索実験(Hishidama's Scala find Memo)

    単純な検索 コレクション(Seq等)に条件を満たす値が入っているかどうかを調べるメソッドはいくつか提供されている。 val seq = Seq(1,2,3,4,5,6,7,8,9,10) seq.メソッド 方法 例 備考 関連

    areyoukicking
    areyoukicking 2013/08/19
    重要
  • Scalaリテラルメモ(Hishidama's Scala literal Memo)

    数字を並べるとInt型。 表現できる範囲(Math.MIN_INT~MAX_INT、32bit整数)を超えるとエラー。

    areyoukicking
    areyoukicking 2013/08/09
    (引数:型, …) => 本体 : 戻り型
  • Scala Anyクラスメモ(Hishidama's Scala Any Memo)

    概要 Javaの全てのクラスがObjectクラスから派生しているように、ScalaではAnyクラスから派生している。 Anyの直下(直接の子クラス)にはAnyRefとAnyValがある。 AnyValはIntやLong・Double等の値のクラスを表す。(Javaのプリミティブ型に相当) AnyRefはそれ以外のクラスを表す。(Javaの参照型に相当) nullはAnyRefの全てのクラス(の変数)に代入できる。 nullはNullというクラスの値になっており、Null型は全てのAnyRefの子クラスの下に位置づけられる。 (したがって、ScalaではInt等も含めて全ての型がオブジェクトということになっているけれども、Int等(のAnyValの派生クラス)の変数にはnullを代入できない) AnyVal・AnyRefも含めて全てのクラスの子クラスとしてNothingが存在する。 継承関係

  • Scala ClassManifestメモ(Hishidama's Scala ClassManifest Memo)

    ScalaのリフレクションのClassManifestのメモ。 Scala2.10でClassManifestは非推奨になった。[2013-06-08] ClassTagを使用する。 Javaは型消去(type erasure)という仕組みになっているので、実行時にジェネリクス(型パラメーター)の情報が消えてしまう。 ScalaJavaVM上で動いているので、事情は同じ。 しかしScalaにはClassManifest(Manifest)というトレイト(とオブジェクト)があり、これで型パラメーターの情報も受け渡せる。 (ClassManifestとManifestの違いはよく分からないが(苦笑)、Scaladocで公開されているのはClassManifestだから、ClassManifestを使えばいいのかな…→ClassManifestとManifestの違い) Javaで型パラメータ

    areyoukicking
    areyoukicking 2013/07/30
    Manifest
  • Scalaジェネリクスメモ(Hishidama's Scala parameterized type Memo)

    Scalaジェネリクス(パラメータ化された型) Javaで言うジェネリクス(総称型)は、Scalaでは「パラメータ化された型(parameterized types)」と呼ぶらしい。 (でもなんか長ったらしいので、自分はひとまずジェネリクスと呼ぶことにする^^;) Scalaのジェネリクスは、型パラメーター(型引数)や型名を角括弧「[]」で囲む。(Javaは「<>」で囲む) Scalaでは、型名を囲む必要がある場合は全て角括弧に統一されているようだ。(classOf[]やisInstanceOf[]等)

  • Scalaクラスメモ(Hishidama's Scala class Memo)

    class [/2012-05-19] メンバー定義 [/2010-12-25] コンストラクター [/2012-05-19] コンストラクターの定義順序 [/2015-03-07] 自分型アノテーション(self =>) [/2012-04-29] アクセス修飾子 [/2010-12-21] インスタンス生成 [/2011-01-09] 内部クラス [2011-01-09] パス依存型(Outer#Inner) ケースクラス [/2017-01-21] (Javaと同様の)複数インスタンス作るクラスは、classで定義する。 (staticメソッドに当たるものが欲しい場合はobjectで定義する) class クラス名 { } →アクセス修飾子(protected・private) →ジェネリクス(class クラス名[A]) 他のクラスから派生する(他のクラスを継承する)場合、exte

    areyoukicking
    areyoukicking 2013/07/19
    「List(1,2,3)」といったnewを使わない初期化方法は、newが省略されているわけではなく、apply()メソッドの呼び出しである。
  • Java列挙型メモ(Hishidama's Java enum Memo)

    列挙型(enum)は、JDK1.5で導入された、一連の値を定義する文法。[2006-07-26] 一番単純な定義方法はC言語の列挙型に似ているが、C言語と違って実態はクラス(と、不変オブジェクト)。 enumはenumerate(イニュームレイトあるいはイヌームレイト)の略なので、発音としては「イニューム」が正しそうだが、自分は「イナム」「エナム」と呼んでいる。 最も単純な定義方法 enum 列挙名 { 列挙子, 列挙子, … } 列挙名は、クラス名(やインターフェース名など)と同様。 (したがって、publicの付いたenumの列挙名は、ソースファイル名と同じでなければならない。また、publicの付いたenumはソースファイル内に1つしか定義できない) 列挙子(enum定数)は、フィールド名の定数(クラス内のstatic final変数)と同様。 (したがって、アルファベット大文字を使

    areyoukicking
    areyoukicking 2013/06/10
    enum Status { STAT1, STAT2, STAT3 } ↓(コンパイルされたイメージ。実際はちょっと違う) final class Status extends Enum<Status> { private Status(String name, int ordinal) { super(name, ordinal); } public static final Status STAT1 = new Status("STAT1", 0);
  • JNDIメモ(Hishidama's JNDI(Java Naming and Directory Interface) Memo)

    JNDI(Java Naming and Directory Interface) JNDIは、ネームサービスやディレクトリーサービスにアクセスする方法を提供している。J2EEの仕様のひとつ。 概要(使用目的) 概要(仕組み) 概要(使用方法) [/2009-11-14] 概要1:使用目的 いきなりネーミングサービスやらディレクトリーサービスと言われても「何の事やら?」だが。 乱暴な言い方をすれば、JNDIはプロパティーの取得と同じ。 プロパティーでは、ローカルに置いたプロパティーファイルに「キー = 値」という行を複数書いておき、実行時にキーを指定することによって値(文字列)を取得する。 JNDIでも、キーを指定して値を取得する。 JNDIとプロパティーの違い 例 ネットでJNDIを検索してみると、前者と後者のどちらかに主眼を置いて解説されていることが多い。 なので、この2パターンが存在

    areyoukicking
    areyoukicking 2013/06/10
    →WebLogic10のJNDIツリー [2008-08-03] →JBossのJNDIView [200
  • オラクル リサイクルビンメモ(Hishidama's Oracle Recycle Bin Memo)

    S-JIS[2007-12-28/2010-02-19] 変更履歴 Oracle10g リサイクルビン Oracle10gから、リサイクルビン(Recycle Bin:再利用する瓶(びん))という ものが導入され、テーブル削除が面倒になった。[2005-05-26] (Flashback Dropという機能らしい) 今まではテーブルをDROPすると即テーブルが無くなったが、10gでは(デフォルトでは)リサイクルビンに入ることになり、そこから削除しないと消えない。 リサイクルビンに入っているテーブルは、user_tablesで見ると「BIN」で始まる変なテーブルとして見られる。 この名前を元に、元のテーブルに戻したり 完全に削除(PURGE)したりする。(リサイクルビン管理となったテーブルはDROPできない) リサイクルビンの確認 リサイクルビンに入れられたテーブルは、BINから始まるテーブ

    areyoukicking
    areyoukicking 2013/06/03
    recycle bin
  • オラクル マテリアライズドビューメモ(Hishidama's Materialized view for Oracle Memo)

    リフレッシュ方法を指定しない場合はforceになる。 後からリフレッシュ方法を変えることも出来る。 SQL> alter materialized view MV_TEST refresh fast; マテリアライズド・ビューが変更されました。 完全リフレッシュ マテビューを計算し直す際に、全データを作り直す。データの変更箇所が少ないなら効率は悪いことになるが、ロジックは一番単純だ。 完全リフレッシュのマテビューを作る際には、「refresh complete」を指定する。個人的には「refresh all」の方が分かり易かったと思うけど…わたしゃ英語圏の人間じゃないからな~ create materialized view MV_TEST refresh complete as select YYMM_GROUP, SHOP_CODE, sum(AMOUNT) SUM_AMOUNT fr

    areyoukicking
    areyoukicking 2013/06/02
    マテリアライズドビューは その計算結果を保持しておき、いちいち計算し直さない。 使う側からすれば、ただ単に「高速なビュー」という感じになる(更新頻度が少なく、参照頻度が高いデータの場合)。
  • SQL*Loaderメモ(Hishidama's sqlloader for Oracle9i Memo)

    CSVファイルからOracleのテーブルへデータを流し込むツール。 大量のinsert文を発行するよりは、断然高速。 データであるCSVファイルや固定長ファイルと、ロード方法を指定するコントロールファイルを用意 して実行する。 (CSVファイルからのロードはこのSQL*Loaderが使えるが、CSV出力には標準的な方法は無いらしくて、select文で加工する方法がよく使われるらしい。 このSQL文をいちいち書くのは少々面倒なので、SQL生成用Excelマクロを作ってみました) コントロールファイル CSVファイルの各項目とテーブルの項目との関連付け等を指定する。 (コントロールファイルをテキストエディタで書くのはけっこう面倒なので、コントロールファイル作成用Excelマクロを作ってみました(CSVファイル用、固定長ファイル用)) 例)emp.ctl: OPTIONS(LOAD=100,SK

  • HTTPセッションメモ(Hishidama's session Memo)

    HTTPはステートレスなプロトコルなので、画面遷移間で一連の処理であることを識別する仕様はHTTPには無い。 が、それでは不便な場面が多々あるので、セッションという仕組みが考案された。 セッションの概要 セッションIDの実装 セッション情報の保持 セッションの概要 一連の処理の開始時(例えばログイン時)に、サーバー側でセッションIDを割り振り、クライアントへ渡す。 (“セッションIDに付随する情報”は、サーバー側で保持する) クライアントがサーバーへ要求を送るときには、割り振られたセッションIDも一緒に送る。 これにより、サーバー側では同一セッションであることを認識できる。 (サーバー側で保持した“セッションIDに付随する情報”が継続して使える) サーバー側としては、異なるセッションIDが来たら、別セッションと認識する。 セッションIDのやりとりの例 クライアント(ユーザー) サーバー

  • Java HTTPセッション メモ(Hishidama's HttpSession Memo)

    JavaサーブレットのHTTPセッション HTTPにはセッションという仕様は無いが、J2EE(サーブレット)ではセッション管理機能をサポートしている。 セッションの使用例 セッションの使用上の制限 セッションの実現方法 [/2007-09-02] セッションの使用例 @Override public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { HttpSession session = req.getSession(true); //タイムアウト時間[秒] session.setMaxInactiveInterval(10 * 60); //値の取得 String value = (String)session.getAttribute(

  • ソケット通信メモ(Hishidama's TCP/UDP Socket Memo)

    TCPソケット サーバータイプとクライアントタイプの両方のアプリケーションを作らないといけないなら、サーバータイプから作るべきだろう。 (クライアントタイプだけ先に作っても動かせないから。まぁサーバータイプだけ動かしても、待ってるだけであまり意味無いけど(苦笑)) でも仕組みはクライアントタイプの方が簡単。 TCPを使う場合は、通信の最初にコネクションの確立を行う必要がある。 サーバーでlisten・accept、クライアントでconnectが成功すればコネクションが確立したことになる。 どのポート番号を使うかについては、サーバー側はアプリケーションの作成者が決める必要がある。[/2007-06-16] クライアント側のポート番号は、ソケットライブラリがそのマシンで使っていない番号を自動的に割り振ってくれるので、気にしなくてよい。 IANAの基準では、1~1023は「よく知られたポート(w

    areyoukicking
    areyoukicking 2013/03/21
    ハーフコネクション
  • オラクルシーケンスメモ(Hishidama's Oracle sequence Memo)

    シーケンスの作成 create sequence シーケンス名 start with 初期値 increment by 増分 maxvalue 最大値 nocycle cache キャッシュ数 noorder ; 構文 概要 省略時のデフォルト値