Oracle
普段、データベースでの外部制約は殆ど設定せず、アプリケーション側で整合性をとるようにしてるんだけど、ちょっと外部制約をつけないと我慢できない人とお仕事することになって色々調べてたら遅延外部制約というものがあるらしい。via 遅延制約 - オラクル…
どうもパッチがあるらしい。パッチがないとだめっぽい。ODBCとか関連のライブラリ群も然り。
これで|| CHR(13) || CHR(10) ||
ビットマップインデックスって Enterprise Edition でしか使えないのね。 知らんかった。パーティションテーブルは元々知ってたけど。。。
select * from v$version 『Enterprise』という記述が無ければ Standard Edition。でも接続したときに大体分かるけど。
OracleではCHAR、VARCHAR2型においてNULLと空の文字列(いわゆる"")は同値扱いでNULLになるみたい。知らんかった。。。どう考えてもNULLと空の文字列は論理的に意味が異なると思うんだけど・・・。ANSI-92では別のものととして定義されているみたい。あと一…
OracleでもSQLServerでも使えるようになってる・・・ちょっと衝撃。未だにsysdateとかやってたし
インストール不要のOracleのクライアントがあるみたいです。 Instant Client該当のファイルをダウンロードして、解凍するだけです。 SQLPlusも使えます。解凍したフォルダにtnsnames.oraを作ってあげれば参照してくれます。
こんな感じのことを。 set pages 50000; set long 2000000000;
一回挫折したので、再度。情報はこの辺 Shift_JIS データベース on Oracle XE なんとなく: OracleXEでJA16SJISの利用
Oracle 11g Enterprise Editionには「透過的データ暗号化(Transparent Data Encryption、TDE)」というのがあるので、試してみました。通常暗号化はアプリケーション側の暗号化ライブラリを使うか、OracleのPL/SQLパッケージのDBMS_OBFUSCATION_TOOLKITを使…
Oracle JDBCを使った場合でOracleの暗号化が使えるかどうかしらべる透過的データ暗号化というものがあるらしい。
大盤振る舞い。シーケンスについての FAQ - オラクル・Oracleをマスターするための基本と仕組みシーケンスの最大値は 28 桁(10^28 -1)、負の場合は 27桁(10^27 -1) ちなみに 0〜10^28-1 を増分1で使い切ろうとすると、毎秒 1000 万回採番して約3兆年かかる…
Oracle 10g R2 から UTL_I18N パッケージに文字列用変換 UTL_I18N.TRANSLITERATE 関数が用意されているようで、賢くなっているようです。SQL> select UTL_I18N.TRANSLITERATE('アアアア','hwkatakana_fwkatakana') from dual;UTL_I18N.TRANSLITERATE('アアアア','HWK…
OracleもMySQLもPostgreSQLもカラムにコメントをつけることができます。 セットされる値がコード且つパターンが限られている場合などはコメントに書いておくと、ExcelやらAccessやらで管理している資料を引っ張り出す必要がありません。そもそもテーブルの情…
Oracleの日付表示のフォーマットを変更する。 >ALTER SESSION SET NLS_DATE_FORMAT='YYYY/MM/DD HH24:MI:SS';
GROUP BY句を使用する場合オラクルの内部でソート処理が行われますが、10.2からデフォルトのソートアルゴリズムが変更されてます。10.2以前はデフォルトがSORT(GROUP BY)だったのがHASH(GROUP BY)に変更されてます。それが原因でGROUP BY句の対象となるレコ…
たまに使いたいときはいつも忘れすので。set linesize 1000 set pagesize 0 set trimspool on set colsep ',' set feedback off spool 出力.txt select * from emp; spool off exit
JavaでOracleのPL/SQLをコールしている場合、PL/SQLをコンパイルした後にコールするとORA-6508でエラーになる場合があります。おそらくJavaでコネクションプールを使用しているせいで(リ)コンパイルが正しく反映できていないようです。そんな場合は素直にJav…
JDBCでOCI接続する場合、最終的にはNativeアプリへ渡されるため.dll(Linux系なら.so)が必要になる。どうもNativeとJDBCバージョンが異なるとなんか怒られる。これではまった・・・。9iまではあまりJDBCのバージョンは気にしないみたい。 10gになったとたんき…
シーケンスの最大とはcreate sequence時に任意に指定できますがデフォルト値は MAX_VALUE INCREMENT = 1.0000E+27 (999999999999999999999999999) になってます。確認するには、 SELECT * FROM USER_SEQUENCES WHERE SEQUENCE_NAME = 'hoge';任意に設定する…
Oracle @file.sql SQLServer2000 PostgreSQL >\i '/path/to/file.sql'; MySQL >source /path/to/file.sql