タグ

Oracleに関するajapoのブックマーク (5)

  • Oracle PL/SQL 編13 - テーブル構造表示、項目検索表示、user_tab_columns - SAK Streets

    Oracle PL/SQL 編13 - テーブル構造表示、項目検索表示、user_tab_columns ■USER_TAB_COLUMNS ・USER_TAB_COLUMNS を利用して、テーブル構造を表示するには、次のように する。尚、構造表示テーブル名は、英字を小文字で指定すること。 set serveroutput on; declare tbl varchar2(200) := 'テストm'; -- 構造表示テーブル名 cursor cu is select lower(table_name) as テーブル名, column_name as 項目名, lower(data_type) as 項目タイプ, nvl(data_precision, char_col_decl_length) as 長さ, data_scale as 小数部 from user_tab_columns

    ajapo
    ajapo 2008/07/21
  • Oracle の MERGE 構文に関する備忘録 - バインド変数の扱い方

    DB アプリを書いていると、どうしても使いたくなるのが UPSERT 機能。 実際には UPSERT という構文はありませんが、意味としてはレコードがあれば UPDATE で更新し、レコードがなければ INSERT で追加をするってことです。 従って、普通に書くなら、SELECT → UPDATE/INSERT と場合分けというロジックでプログラムを書くわけですが、トランザクションで考えるとコレが意外とやっかいなときがあります。そのような場合は SELECT FOR UPDATE とか使って行ロックをかけたりする訳なのですが、これまた予期せぬロック待ちの元になったりする場合があり得るので、あまり人に書かせたくない。 Oracle には UPSERT に相当する構文として MERGE 構文があるので、結構重宝します。ただし Oracle9 以降で実装された機能なのですが、今時 8i 以前を使

    ajapo
    ajapo 2008/07/06
    MERGE文でDUAL表を使ってUPSERTする。
  • ORACLE/オラクルPL/SQLリファレンス(SHOW ERRORS)

    スポンサード リンク ストアドプロシージャやストアドファンクションなどのストアドサブプログラムは、無効な場合でもデータベースに格納されます。しかし、エラーの詳細情報は表示されません。 その為、SQLPLUSでSHOW ERRORSコマンドでエラーの詳細情報を表示します。 例1) ストアドファンクション登録でコンパイルエラーが発生しました。 SQL> create or replace function get_dept( 2 v_dept_id in char) 3 return varchar2 as 4 5 v_dept_name varchar2(10) 6 7 begin 8 9 select dept_name into v_dept_name from dept where dept_id = v_dept_id; 10 return v_dept_name; 11 12 en

  • ロック解放のための道具箱(Oracle) - プログラマー'sペイジ

    ロックの解除を行う際に使うSQLのメモ ロック解放のための道具箱 (Oracle) ロック状態を解消するための作業に使用するSQLを,まとめました. ほとんど自分用のメモです. ↑ /* 他のセッションを待たせているロックを取得する */ select b.id1, a.sid, a.serial#, b.type, to_char(b.ctime / 60,'999999999.9') min, decode(b.lmode, 1, 'NULL', 2, '行共有(SS)', 3, '行排他(SX)', 4, '共有(S)', 5, '共有行排他(SRX)', 6, '排他(X)', '???') lmode, decode(b.request, 1, 'NULL', 2, '行共有(SS)', 3, '行排他(SX)', 4, '共有(S)', 5, '共有行排他(SRX)', 6,

    ajapo
    ajapo 2008/06/06
    これは便利です。
  • Oracleのバックアップ/リカバリの仕組みとは? ? @IT自分戦略研究所

    ユーザープロセス障害 ユーザープロセスが異常終了してしまうことです。クライアント側のリソース不足によるプロセスの終了、Oracleサーバとのネットワークの切断によるセッションの終了などが考えられます。 ユーザープロセス障害の解決は、Oracleサーバ側のサーバプロセスのクリーンアップで対応します。サーバプロセスのクリーンアップは、PMONバックグラウンドプロセスにより自動的に行われるため、データベース管理者による特別なアクションは必要ありません。PMONバックグラウンドプロセスは、トランザクションをロールバックし、ロックを解放します。 ユーザーエラー ユーザーが誤ったトランザクションをCOMMITしたり、誤ってテーブルを削除、切り捨ててしまったりすることです。SQL文としては正しいため、Oracleサーバは渡されたSQL文を正しく実行します。その結果、必要なテーブルが削除されたことにより、

    Oracleのバックアップ/リカバリの仕組みとは? ? @IT自分戦略研究所
  • 1