Oracle
IMPツールのオプションにGRANTSというものがあり、これは権限をインポートしてくれる(デフォルトはY)。ところがどうも予約語と同じロール名の場合は(ユーザ名も?)ちゃんとインポートしてくれないようだ。 つまりダブルコーテーションで無理やりロールを…
OracleではSYSDATEの戻り値を常に同じ値にすることができる。 alter system set fixed_date = "2005-06-29 11:46:50" これで、SYSDATEの戻り値は常に2005-06-29 11:46:50に固定される。これと同じことをDB2でやりたいのだが、できるのだろうか。 なぜやりた…
わからん ORA-12514: TNS:listener does not currently know of service requested in connect descriptor ずっと接続できていたのに唐突に接続できなくなることが昨日今日で2回。環境はOracle10g(Win版)クライアントはWindowsXPと2003サーバ(両方で一回…
Oracle10gをローカルにインストールし、startupでインスタンスを起動したのにEnterprise Manager(10gからWebになったやつです)でつなげようとしたらつながらないという現象と一日戦っておりました。 どっかのログを見ると、SYSMANとDBSNMPユーザあたりのア…
ファイングレイン監査という機能を使うと、テーブル、カラム単位でアクセスを監視することができます。とても簡単。DBMS_FGA.ADD_POLICYというプロシージャに、監視対象を与えて設定。あとはアクセスのたびに、SYS.FGA_LOG$にログが書かれるという寸法。 CRU…
誰かの作った既存のプログラムがどんなSQLを発行しているかを調べようとしています。方法としては二つありますかね。 1) JDBC発行時にログを書く コネクションは外部から渡しているので、JDBCをラップしてログを吐かせるという手はあるかと思います。 参…
http://oracle.oreilly.com/utplsql Oracle PL/SQLのテスティングフレームワークがあったみたい. いまはC#側でプロシージャとファンクションを全部ラップして,NUnit側でテストしてるんですが,果たしてこの方法が良いのかどうか.まあ,ちゃんとテストでき…
トランザクション内でIDbCommandを使うとき,ODP.NETのOracleCommandだとそのまま行くのですが,OleDbCommandだとIDbCommand#Transactionにトランザクションをセットしないと次の例外が投げられる模様です. Execute は、コマンドに割り当てられた接続が保留…
ふだんはOracleが提供しているODP.NETを使っているのですが,ちょっと別のプログラマが書いた部分を引き継いだら,普通にADO.NETを使っているようです. 書き換えられるかな. IDataReaderのreaderから,GetSchemaTableを取得して,中を調べてみると,Oracle…
こういうテーブルのデータ コード,ソース,タイプ 001,インターネット,A 001,インターネット,B 001,街頭,A 002,インターネット,C 002,街頭,A 002,電話,B 003,電話,B 003,電話,C から コード,ソース,タイプ 001,インターネット,A 002,インターネット,C 003,電…
うーん,ENUM型がほしいなあ.次みたいなDBのテーブルがある 顧客テーブル 顧客コード,希望商品コード A,01 B,03 C,04 D,01 (一意キーは顧客コード.各顧客コードに対して希望商品コードはひとつ) アンケートテーブル 顧客コード,希望商品コード A,01 A,05…
エクセルをコピペするとタブ区切りになってくれてとても便利なので,エクセルでマスタを管理して,SQL*LoaderでOracleにロードしています.で,セル内改行の入ったテーブルで同じようにコピペをするとそのセルは勝手に引用符に囲まれてデータとして貼り付け…
MySQLにある特殊なデータ型.いちいちマスタテーブルを切ったり,複数フィールドを用意したり,中間テーブルを要したりしなくて良いので,Oracleでもこういうの使えると楽なんだがなー.
何が原因なのかよくわかりません.NUnitのテストクラス内で,DataDapter#Fillが「適切なキャストではありません」という例外を投げてDBからデータを取得してくれません. おなじソリューションでもテストクラスじゃないのは問題なくアクセスできて居るんだけ…
データによってロードするデータを変えるにはdecodeを使って場合分けをします.たとえば,col1というカラムなら col1 "decode(:col1, NULL, SYSDATE, TO_DATE(:col1,'YYYY-MM-DD HH24:MI:SS'))" という感じ.
SQL*Loader-605: データに依存しないOracleエラーが発生しました -- ロードが停止しました。 オラクルローダで上記のエラーが発生する場合は表領域のサイズをチェックします.いっぱいになったときとかに起こります.自動拡張にするか,最大値を増やしてみる…
毎週毎週,タブ区切りテキストのデータをOracleのデータベースに登録する.当初いらないとされていたデータを,既存のテーブルの追加カラムとして保存しておかなければならなくなった.テキストデータは全部とってあるのでそのデータを反映させればできるこ…
行おうとするとORA-14155が発生します. 調べるとどうやら9.1以前のOracleでは直接修正は出来ない模様.新規カラムを追加して,データをコピー,旧カラムを削除ってのをするしかないらしい.めんどい. (追記)ちなみにパフォーマンスのことは考えに入れて…
うおっ.すごくありがちな現象が起きてます.「〜」の文字化けです. OracleはSorarisに入っていてキャラクタセットがJA16SJISです.ところがこいつからデータを取ってくると文字化けがおきます.これはWindowsNT系が使っている,MS932というコードが「〜」…
数字をn桁でゼロ詰めした文字列に変換するのはどうするのだろうか. nがあらかじめ分かっていれば TO_CHAR(num, '000000000');と書けるので,桁数指定部分に0をn文字列を埋め込めばいいのかと思うのですが,同じ文字列をn個連結する関数はないのかしらん.ま…
PL/SQLなんて初めて書きましたよ.簡単なことが全然分からんです.配列の添え字が1から始まるんですね(OptionBaseとか指定できるのかなあ).だいたい配列といっておきながら要はテーブルみたいなもんなんでしょ.Oracle特有なのかどうかもよく分からない…
SQL*Loaderではバインド配列という配列にいったんデータが入り,それがインポートされていく形になっています.デフォルトだとこのバインド配列のサイズで自動的にコミットされてしまうのです.コミットポイントを無制限にし,すべてのデータが正しく入った…
このところ,データのインポートの負荷テストをずっとしてます.外注さんが作った仕組みで50万件のテストデータをインポートするのに17時間かかるのを,SQL*Loaderで行うと25分で終わってしまうのを知りショックをうける.まあ,作ったものは別に機能がいっ…