ブックマーク / www.shift-the-oracle.com (5)

  • ストアドプロシージャ、パッケージとは - オラクル・Oracle PL/SQL 入門

    ストアドプロシージャ、パッケージとは Top | Knowledge| DB構築| 文字列関数| 日付関数| 集計関数| SQL関数(アルファベット順) SQL(抽出・更新)| SQL*Plus| PL/SQL| Utility| Structure| スキーマ| チューニング| 用語| 参考書 ストアドプロシージャとは ストアドプロシージャとはデータベースに格納(Stored) されているユーザープログラム(Procedure) の一般な俗称?(※1)である。 オラクルのマニュアル上では SQL/PSM(※2) 相当の機能を PL/SQL プロシージャ/ストアド・プロシージャ (CREATE PROCEDURE 〜) PL/SQL ファンクションストアド・ファンクション (CREATE FUNCTION 〜) PL/SQL パッケージ/ストアド・パッケージ (CREATE PACKAGE

  • ストアドプロシージャ - オラクル・Oracle PL/SQL 入門

    ストアドプロシージャの定義と実行 ストアドプロシージャ(ファンクション)とは、Oracle データベースに格納(ストアド)されたプロシージャやファンクションのこと。 主に手続きのある処理を高速に処理するための手段である。 すべて(ストアド・パッケージも)をひっくるめて、単に ストアドプロシージャ (以下 ストアド・プロシージャ)と呼ばれている事も多い。 ストアド・プロシージャはクライアントとサーバーを繋ぐネットワークという遅い通信経路に SQL と結果が何度も行き交うような処理に対して非常に有効である。 一方、サーバーのシステム日付を取得するような手続きや繰り返しの無い処理には高速化の期待はできない (処理のカプセル化などという面では役に立つ)。 ストアド・プロシージャを機能別に分類しまとめたものを PL/SQL パッケージという。標準関数は SYS スキーマの STANDARD パッケー

  • SELECT FOR UPDATE - オラクル・Oracle SQL 入門

    SELECT 時に明示的な行ロックを行なう方法 SELECT 〜 FOR UPDATE は行レベルでロックをするための SQL 文である。そのために FOR UPDATE で SELECT した後のプロシージャ処理で処理中のレコードが更新されたり、削除されたりすることを防ぐことが可能である。 しかし、一度に大量のレコードをロックしたり、表全体をロックするような大規模のロックは 同時操作性にも問題が生ずるので極力控えるように設計したい。要件上、どうしても必要な場合には LOCK TABLE などの表ロックを検討する。 SELECT 〜 FOR UPDATE [WAIT | NOWAIT] Oracle 9i から FOR UPDATE の WAIT に待機秒数が指定できる。(※1) SELECT 〜 WHERE ... FOR UPDATE [OF [table_name.]column_n

  • 表ロックの種類と相互関係 - オラクル・Oracleをマスターするための基本と仕組み

    ● ロックを取得可能 × ロックの取得は不可能 ▲ ロックを取得可能であるが別セッションからの同一行へのアクセスは待機させられる(TX待機) ▼ ロックを取得可能であるが別セッションからの プライマリキー制約、ユニーク制約 に該当する行の INSERT は待機させられる(TX待機) ▲ ▼ に関して:トランザクションが分散トランザクションの場合には初期化パラメータによってタイムアウトが発生する。 参考 ⇒ ORA-02049: タイムアウト: 分散トランザクションがロックを待機しています。 共有ロックと排他ロック 共有ロック 共有ロックとは主に参照を行う際に掛けるロックであり複数設定することも可能。しかし SELECT の度にロックを掛けているわけではなく、データや表定義が変更されると困る操作のときにだけ掛けられる。 例: 更新予定の行を宣言して SELECT する(RSロック)、インデッ

  • オラクルエラー 対処法 - オラクル・Oracle エラー FAQ

    Oracle エラーの代表的な原因と具体的な対応方法 エラーの内容と基的な対応方法は Oracle Database エラー・メッセージ マニュアル を見ることによって知ることができる。 ユーティリティのトラブル IMP-00032: SQL文がバッファ長を超えました。 EXP-00091: 不審な統計をエクスポートしています。 KUP-04020: サポートされているバッファ・サイズ 524288 より長いレコードが <filename> で見つかりました。 起動時のトラブル ORA-00065: FIXED_DATEの初期化に失敗しました。 ORA-01034: Oracleは使用できません。 ORA-01102: データベースを排他モードでマウントすることができません。 ORA-12154: TNS: 指定された接続識別子を解決できませんでした。 ORA-12514: TNS: リ

    nissin_yy
    nissin_yy 2010/12/06
    oracle
  • 1