oracle

libaio.so.1がないよエラー

# rake db:fixtures:dump MODEL=HogeHoge (・・・) rake aborted! Oracle/OCI libraries could not be loaded: libaio.so.1: cannot open shared object file: No such file or directory - /usr/local/lib/ruby/site_ruby/1.8/i686-linux/oci8lib.so 解決 #…

DHCP環境でインストールするときはループバック・アダプタをインストールしておく

しないと泣きを見る。

DATE/TIMESTAMPのカラムのscaffoldでViewが作られない

DBはOracleなんですけど、テーブルこれでつくりました class Cars < ActiveRecord::Migration def self.up create_table :cars do |t| t.column :name, :string t.column :maker_id, :number t.column :arrived_at, :datetime t.column :created_at, :timest…

DATE型のカラムを検索する

OracleのDATE型 >> member = Member.find(10000) "id" "members" => #<Member:0xb339510c @attributes={"name"=>"maiha", "arrived_at"=>#<Date: 4903089/2,0,2299161>, "id"=>10000, "presence"=>2, "created_at"=>#<Date: 4903089/2,0,2299161>}> >> member.arrived_at NoMethodError: private method `gsub!&#39; called f…</date:></date:></member:0xb339510c>

動的SQL EXECUTE IMMEDIATE

以前は、DBMS_SQL パッケージで動的 SQL を使用していたが、 最近は、EXECUTE IMMEDIATE を使用すると簡単である。 尚、解析のオーバーヘッドはかなりある。うみゅ・・知らんかった。

組み込み関数 USERとかUSERENVとか

なんかコミいったことするとき使えるかも。 SQL> select user from dual; USER ------------------------------------------------------------ SYSTEM SQL> select USERENV(&#39;sessionid&#39;) from dual; USERENV(&#39;SESSIONID&#39;) ----------------…

DBがオープンできない(ORA-00312)

ノートパソコンにいれてるOracleが不可解な動きをしていた。 oradimで起動させても、OEMではダウン中と表示されたり、起動させたあとでshutdown processing・・とか出てた。 そもそもOEMの認証まわりの動きがなんかおかしい気もするけど、いろいろやってたら…

ActiveRecordでOracleにつなぐ

ふーふー。やっとつながった。。 かなりめんどくさかった。 OracleClientをOUIで入れるのに失敗したのが痛かった。 ActiveRecordでOracleにつなぐには ruby-ociのインストールが前提。 http://rubyforge.org/frs/?group_id=256&release_id=6553 が、ruby-oci…

CentOS4.4にOracle10gR2をインストール

Xウィンドウとか分かってないから、インストラーの画面出すだけでかなりヘタレタ。 OSのデフォルトじゃうまく動かないみたいだ。 なんかグチャグチャいじったしたのでよくわからなくなったけど、多分ここの対応がヒットしてると思う。 http://search.luky.or…

Plaggerいれられねえ

C:&#92;Documents and Settings&#92;bird>ppm Perl lib version (v5.8.3) doesn&#39;t match executable version (v5.8.7) at C:&#92;oracle&#92;product&#92;10.2.0&#92;db_1 &#92;perl&#92;5.8.3&#92;lib/MSWin32-x86-multi-thread/Config.pm line 32. Com…

フラッシュバック体験

SQL> select * from scott.a as of scn 6677174; ID NAME ---------- ---------- 1 one 3 three 5 five 7 seven SQL> select * from scott.a; ID NAME ---------- ---------- 8 eight 1 one 3 three 5 five 7 seven SQL> alter table scott.a enable row mov…

CONNECTロールって

たいがいのCREATE権限があると思ってたのに ワタスのOracle10gR2ではCREATE SESSIONしか付加されない! なにゆえ!! http://jibun.atmarkit.co.jp/lskill01/rensai/bronzedba08/bronzedba01.html

ファンクション・ベース索引

ファンクション・ベース索引を使う際に設定しておかなければならない初期化パラメータのことを忘れていた。 ファンクション・ベース索引を使用するためには、以下の設定を行うか、 SQL中に明示的にHINT句を指定する必要があります。 初期化パラメータ「QUERY…

BLOB操作ができた

以前、BLOBにExcelファイルを入れて・取り出したらファイルが壊れる現象にソウグウした。 そこで、"hello"と書いたファイルをBLOBに入れて・取り出した結果をみてみた。 "hell"と改行コード(0x0D,0x0A)が出てる・・・ 調べてみると、BLOBデータを書き込むフ…

Oracleのserializable

トランザクション内ではSELECT時のデータを保証する 同じレコードに更新が複数からあった場合、先勝ち後負け(ORA-08177: このトランザクションのアクセスをシリアル化できません) SELECT FOR UPDATEと同じ動作ではない(SELECT時にロックかからない・更新…

BLOBにExcelファイル入れたら壊れた

BLOBを触ってみようと思いまして。 こちらのサンプルソースを使ってやってみました。 ディレクトリオブジェクトとかあるのね。知らなかった。 で、Excelファイルを入れて、取れたー!ってファイル開いたら「破損しています」 エエエエエー。なんでだよう。 j…

ORADIM

サービス/インスタンスの作成・起動・停止・削除がコマンドラインでさくっとできる。 DBCAは起動しているインスタンスしか削除できないが、ORADIMだと起動してなくても消せる。 とかいうシロモノらしい。。 WindowsでOracle使うのには必須のようだ。 マターク知…

OEM 10gってどうなの

Oracle10g(開発用ライセンス)を入れたマシンで DBCAで2つ目のインスタンスを作り、削除しました(ちょっとテスト用途) そのあとで emctl status dbconsoleやったら、立ち上がんないでヤンの! なんかORACLE_HOSTNAMEもホスト名に「.home」がついてヤンの…

db_cache_size

Oracleのアーキテクチャーとしてdb_cache_size * 2%を超えるよう な大きな表をFull Scanした場合は、LRUリストの最後方に置かれ長くキャッシ ュされることはない。http://www.insight-tec.com/mailmagazine/ora3/vol252.html へえ。そういう閾値なんだ。

「>=」&「<=」よりBETWEENを使ったほうが効率的

ということが分かった。 こんなテーブルで20マン件つくって検証。 CREATE TABLE TEST ( START_NO NUMBER(8,0) NOT NULL, END_NO NUMBER(8,0) NOT NULL, NOTE VARCHAR2(20) NOT NULL ) / ALTER TABLE TEST ADD(PRIMARY KEY (START_NO, END_NO) USING INDEX) /…

Oracle 10g SEにはpartition機能がない 01:33

http://www.oracle.co.jp/database/function.html えええええーーーーまじで・・・orz

Oracle 10g SEにはマテリアライズド・ビューの機能がない

http://www.oracle.co.jp/database/function.html えええええーーーーまじで・・・

外部結合のON句の条件

SELECT a.deptno, a.delete_flg, b.ename, b.delete_flg FROM dept a LEFT JOIN emp b ON (a.deptno = b.deptno AND b.delete_flg = 0 AND a.delete_flg = 0)左外部結合で、ON句で左表の条件にリテラルを入れても まったく考慮されないんですなあ。。

WHERE句にリテラルの条件を入れることでクエリをスキップ

オプティマイザはデータベース列ではない定数や変数の比較をまず実行するように、 実行計画を生成する。らしい。 たとえば、こんなSQLがあったとします。 SELECT * FROM A WHERE ・・・ UNION ALL SELECT * FROM A WHERE ・・・ このSQLはこんな内容だったと…

サブプロシージャで例外が発生した場合、戻り値はNULLだ!

ということがわかった。 サブファンクションの場合は例外処理部でRETURNを記述する必要がある。 create or replace package hoge is procedure parent; end hoge; / create or replace package body hoge is procedure child(in_i IN NUMBER, in_rtn OUT NUM…

結合インデックスせんりゃく

こんなテーブルがありましたとさ。 CREATE TABLE TBL ( COL1 VARCHAR2(1), COL2 NUMBER(5,0) ) そして、このテーブルを検索するこのSQLを速くしたいと。 SELECT * FROM TBL WHERE col1 = &#39;A&#39; AND col2 BETWEEN 1 AND 333333 TBLのレコード総数は100…

複合問合せ(UNION ALL)のマテリアライズド・ビューのつくり方

けっこう手こずった。 というのは、REFRESH COMPLETEタイプならふつうにつくれるけど、 高速リフレッシュをしたかったのでREFRESH FAST ON COMMITタイプをつくろうとした。 そしたらエラーがでまくった。 まず、高速リフレッシュするには、マテリアライズド・…

アンインストール(Windows)

9iと10gしか知らへんけど、レジストリをいちいち消さないとキレイにならないのがメンドウ。

DBMS_OUTPUT

メモ。 主にデバッグで使う。 Oracle 10g R2 から行サイズが 32KB に、そして最大サイズが無制限に拡張されている。らしい。

通信経路を暗号化

Oracle Advanced Securityオプションを使え! Oracleサーバに対する通信経路の暗号化 「なぜOracle9iデータベースなのか」という問いに対して、 「Oracle9iデータベースならばオープンソースのデータベースに実装されていない 多くのセキュリティ機能を利用…