Oracle

OracleDBでINSERT/DELETEエラーのテスト

DBエラーが発生した時のアプリの振る舞いをテストするときにDB側に細工して意図的にエラーを発生させることをやりますが、その一つの方法です。 単体テストの度に毎回調べてて、毎回見つからなくて困るのでメモ。 INSERT/DELETE限定ですが、INDEXをUNUSABLE…

ORA-24816の対処。

今日、初めて見た。事象と対処法だけメモ。 事象 BLOB列とVARCHAR2(4000)列を持つAテーブルに、それぞれ最大サイズのデータをINSERTしようとしたところ、ORA-24816発生。 ORA-24816: 実際のLONGまたはLOB列の後に、指定されたLONG以外のバインド・データが拡…

LinuxサーバからOracle JDBC接続するとEnd of TNS data channelやConnection resetが発生する場合の対処法

事象 LinuxのAPサーバ上に配置したJavaバッチプログラムからOracle DBへJDBC接続しようとするとDBコネクション取得時にエラーが出ることがあった。 体感的には、何度かバッチ起動終了を繰り返すとDBコネクション取得にかかる時間がどんどん遅くなっていき、…

ORA-01502: 索引'string.string'またはそのパーティションが使用不可の状態です。

あるメンバが、「間違ってSQL*Loaderで同じデータを2回入れちゃってPKが壊れちゃった!」とすがりついてきたので調べてみた。 DELETE FROM <TABLE_NAME> WHERE PK_COLUMN1 = 'XX'; ORA-01502: 索引'TABLE_PK'またはそのパーティションが使用不可の状態です。 早速調べて</table_name>…

よく叩くコマンドメモ

よく叩く割によく忘れるのでメモ。 ホスト名、SIDを指定して接続 tnsnamesに書かずに直接接続するやり方。 sqlplus user/pw@//host:port/sid ポートは1521なら省略可。 例としては、 sqlplus scott/tiger@//127.0.0.1:1521/XE アーカイブログ削除 7日前まで…

スプールファイル名に日付文字列を入れる

よく忘れるのでメモ書き。 Oracleのsql*plusでスプールファイル名に日付を入れる方法です。 DEFINE spool_file_name = C:\check_database DEFINE spool_file_ext = .log column date_time new_value spool_file format a100 -- spoolファイル名の作成 select…