Oracle

[Oracle] autotrace traceonly explain で表示されるSQL_IDが変わってしまう

SQL_ID取得 [Oracle] SQL*PlusでSQL_IDを取得する では、sqlplusの set feedback on sql_id を使って特定SQLのSQLIDを取得する方法を紹介した。 SQL> set feedback on sql_id SQ...

Oracle

[Oracle] SQL*PlusでSQL_IDを取得する

set feedback on sql_id Oracleの18.1から、SQL*PlusでSQL_IDを取得することができるようになっている。 SQL*Plusリリース18c, バージョン18.1での変更点

bash PowerShell

[PowerShell] Unixシェルスクリプトとの比較 その2

Unixシェルスクリプトとの比較 その1 の続き sed sedで文字列置換。 $ printf "apple\nbanana\norange\n" | sed "s/an/xyz/g" apple bxyzxyza orxyzg...

bash PowerShell

[PowerShell] Unixシェルスクリプトとの比較 その1

シェルに慣れ親しんでいるUnix/LinuxユーザがPowerShellを使おうとしたときに、ちょっととっつきにくいところがある。 それは、Unixではgrepやsedといった個別のコマンドが担っている概念をPowerShellでは言語が担っているというところじゃないだろうか。...

Oracle

[Oracle] OracleのNUMBER型の謎

PLS_INTEGER OracleのPL/SQLにはテーブルには使えない数値型が存在する。 これはNUMBER型のような10進型ではなく、Cのintのような内部2進の32ビット整数型なので高速に動作する。

bash シェルスクリプト

[bash] コマンドの前で変数への代入をする

bashでコマンドの前で変数への代入をする構文を正確に理解してなかったので、整理。 LC_ALL=C sort ... よく見かけるのはこのパターン。 $ LC_ALL=C sort ... ソート条件に言語設定が影響してくるのを防ぐのと、パフォーマンス対策で事前に...

Oracle SQL

[Oracle] select句のアスタリスクと擬似列

取得日時も付加しておきたい Oracleでv$sessionのような動的ビューのログを取るときなんかに、取得日時も付加しておきたい場合がある。 こんな感じ select to_char(sysdate, 'YYYY-MM-DD HH24:MI:SS'), ...

Oracle

[Oracle] DockerにSQL*Plus, SQL*Loaderがつながらない

つながらないのだ Oracle 19cをDockerで動作させて、ネットワーク越しに(というかコンテナ外から)SQL*Plus, SQL*Loaderでつなげようとしたら、つながらない現象が起きた。 SQL*Plus $ sqlplus user/password@loc...

bash grep linux unix

[bash] 標準エラー出力をフィルタリング

標準エラー出力なんとかしたい bashでの作業中に標準エラー出力に、実害のない警告メッセージが延々と出てくることがないだろうか。 他のエラーメッセージが紛れてしまうので、これを除去したい。 $ somecommand わかってるからもういいよ なんかエラー! わかってるから...

Java

[Java] スタティックイニシャライザでのエラー処理

[Java] JDBCドライバもサービスプロバイダーでできてる ではスタティックイニシャライザ内でDrivaerManagerにJDBCドライバを登録した。 しかしながら、DriverManager.registerDriverはSQLExceptionをスローするため、チェッ...

Java

[Java] サービスプロバイダーを作ってみよう 〜Java9以降〜

Java9のモジュール機構 サービスプロバイダーを作ってみよう Java8以前 ではJavaのサービスプロバイダーを作った。 このときはjarの中にMETA-INF/services/ファイルを配置したけど、Java9以降ではこの辺に新しいやり方が導入されている。 まずはJ...

Java

[Java] JDBCドライバもサービスプロバイダーでできてる

前回 はサービスプロバイダーを作って見たけど、試しにJDBCドライバを実装してみよう(中身はないけど)。 サービスに相当するものはjava.sql.Driverインターフェースとして用意されているので、これを実装する。 大事なのはスタティックイニシャライザで DriverM...

Java

[Java] サービスプロバイダーを作ってみよう 〜Java8以前〜

サービスと言っても、今回やろうとしているのはWebサービスとかではなくJavaが備えているモジュール切り替えの仕組み。 例えば、JDBCドライバは様々なDBMSに対応しているけど、インターフェースに従ってさえいれば、切り替えは比較的容易になっている。 登場人物 登場人物はサ...

Java ジェネリクス

[Java] ジェネリックメソッドの戻り値は境界ワイルドカード型にしない

前回 に続き、Effective Javaネタ。 PECS Effective Java 項目31 APIの柔軟性向上のために境界ワイルドカードを使う によると"最大限の柔軟性のためには、プロデューサ(生産者)かコンシューマ(消費者)を表す入力パラメータに対してワイ...

Java パフォーマンス マルチスレッド

[Java] ConcurrentHashMapとHashMapの非互換性

Effective Javaによると Effective Java 第3版の項目81 "waitとnotifyよりも並行処理ユーティリティを選ぶ"によるとConcurrentHashMap.putIfAbsentをそのまま使うよりも、 public sta...