PL/SQLって文字列操作はあまり得意じゃないのね。って組んでみたはいいけど日の目を見ることはなかったので,これで成仏してくれ。 ↓ここらへんを参考にした。 Search | com.com Search | com.com 文字列結合の例 関数:SAMPLE.to_str()が可変長引数なのがポイント。組み込み関数だと可変長引数もアリなのに,ユーザ関数じゃ,トリック使わないとできないってどうゆうこと。 #→UTL_LMS.FORMAT_MESSAGEファンクション DECLARE result VARCHAR2(200); BEGIN -- 可変引数なのがポイント result := SAMPLE.to_str(SAMPLE.vargs('a', 'b')); DBMS_OUTPUT.PUT_LINE('result = ' || result); result := SAMPLE.to
SQL Developer 4.0 Downloads でOracle SQL Developer 4.0 EA3がダウンロード可能になっている。前バージョンの時(Oracle SQL Developer 4.0のインストールとややハマッた時のメモ - kagamihogeの日記)と同じくハマったので対応方法を残しておく。 環境 Windows XP Java SE Development Kit 7u45 Oracle SQL Developer 4.0 (4.0.0.13.30) EA3 起きたこと Unable to create an instance of the Java Virtual Machine Located at path: C:\Java\jdk1.7.0_40\jre\bin\client\jvm.dll 原因と対策 Oracle SQL Developer 4
Oracleは定期的にアナライズをすることにより、実行計画の精度を上げるのが基本です。 10gではGATHER_STATS_JOBという自動アナライズ機能がデフォルトでONになっています。 とはいえ、たびたびアナライズをするとパフォーマンスダウンにつながるため、 GATHER_STATS_JOBは次のオブジェクトに対して実施します。 統計情報を取得していないオブジェクト 統計情報が失効(レコードが10%が変更された)オブジェクト 私の担当Webサイトでは、ジョブスケジューリングの設定変更をしています。 というのは、デフォルト設定のままだと平日22時および土曜日0時にしか実行されないためです。 担当サイトの高負荷時間帯は毎日22~25時なので、負荷の低い毎日14時に実行しています。 まず、GATHER_STATS_JOBがMAINTENANCE_WINDOW_GROUPというジョブグループで
KILL SESSION or DISCONNECT SESSION Top | Knowledge| DB構築| 文字列関数| 日付関数| 集計関数| SQL関数(アルファベット順) SQL(抽出・更新)| SQL*Plus| PL/SQL| Utility| Structure| スキーマ| チューニング| 用語| 参考書 ALTER SYSTEM KILL SESSION と DISCONNECT SESSION Oracle 11g でようやくマニュアルに書かれている仕様なりつつある? ALTER SYSTEM KILL SESSION と ALTER SYSTEM DISCONNECT SESSION コマンド ALTER SYSTEM KILL SESSION Oracle 10g までの構文 ALTER SYSTEM KILL SESSION 'sid,serialNo' [
Oracle サーバーの IP アドレスを取得するため、以下のような SQL を実行すると、 SELECT UTL_INADDR.GET_HOST_ADDRESS('server1') FROM DUAL; 10g では正常に IP アドレスが取得できますが、11g では以下のようなエラーが発生するようになりました。 ORA-24247: アクセス制御リスト(ACL)によりネットワーク・アクセスが拒否されました ORA-06512: "SYS.UTL_INADDR", 行19 ORA-06512: "SYS.UTL_INADDR", 行40 ORA-06512: 行1 これは 11g から UTL_TCP、UTL_SMTP、UTL_MAIL、UTL_HTTP、UTL_INADDR といったパッケージを使用する際にファイングレイン・アクセス制御が効くようになったためだで、10g 以前のバージ
表領域に空きはあるが、断片化している。DB を使っている人がいるから exp & imp とかできない場合。 現象 import 実行したら、 ORA-01659: unable to allocate MINEXTENTS beyond ... in tablespace ...って怒られた。 対処法 環境変数をセットする。 $ export LANG=C $ export NLS_LANG=American_America.JA16SJIS show=y つきで imp コマンドを実行して、DDL をログに出力する。 $ imp scott/tiger file=scott_ddl.dmp log=scott.log show=y DDL を実行できるよう加工する。 $ perl -ple '/^ "/ or s/.*//;s/^ "(.+)"$/$1/;s/^(CREATE|ALTE
■デバッグ実行時にエラーが発生した場合の対処法 http://otn.oracle.co.jp/forum/message.jspa?messageID=24000042� 以下のエラ−の場合 >>ORA-30683: failure establishing connection to debugger >>ORA-12541: TNS:no listener ①WindowsXP SP2 のファイアウォールを切ってみる ②oracle sql developerの設定を変更 [ツール]-[設定]-[デバッガ] データベース・デバッグのデバッガ・ホストをプロンプト を ON に設定するとデバッグ実行時に接続先ダイアログが 表示されるのでクライアントのIPアドレスを入力して実行 してみて下さい。 ③ ②で設定したのちでてくるダイアログの クライアントのIPアドレスはループバックアドレスでは
Oracle管理者のためのSQLリファレンス ■制約の確認/作成/削除 表の各列には整合性制約と呼ばれるルールを指定できます。整合性制約は5つあります。 NOT NULL制約 列の値がNULLでないこと。列に必ず値を入力しなければなりません。 一意キー制約(UNIQUE制約) 列のすべての値が一意であること。指定した列で値が重複することは許されません。ただしNULLは複数存在することが許されます(NULLはどの値とも等しいと見なされない)。 主キー制約(PRIMARY KEY制約) その列が行を一意に識別できること。表には、主キー制約を最大1つ指定できます。主キー制約では、値は重複してはならず、またNULLも許可されません。 参照整合性制約(REFERENCES制約) 関連付けられた表の共通する列の関係が保たれていること。参照整合性制約では、表の各行の外部キー値は、親表の値と一致していなけ
ヘッダーをスキップ Oracle® Databaseエラー・メッセージ 10g リリース1(10.1) 部品番号: B12448-02 索引 目次 タイトルおよび著作権情報 はじめに 対象読者 関連ドキュメント 表記規則 1 メッセージの使用方法 エラー・メッセージ関連マニュアル Oracle Databaseメッセージ 製品固有メッセージ オペレーティング・システム固有メッセージ メッセージの精度 メッセージの形式 メッセージにおける埋込み変数の認識 メッセージ・スタック オラクル社カスタマ・サポート・センターへの連絡 Oracle例外メッセージ トレース・ファイル アラート・ファイル 2 ORA-00000~ORA-00830 3 ORA-00910~ORA-01497 4 ORA-01500~ORA-02098 5 ORA-02140~ORA-04099 6 ORA-04930~OR
DB アプリを書いていると、どうしても使いたくなるのが UPSERT 機能。 実際には UPSERT という構文はありませんが、意味としてはレコードがあれば UPDATE で更新し、レコードがなければ INSERT で追加をするってことです。 従って、普通に書くなら、SELECT → UPDATE/INSERT と場合分けというロジックでプログラムを書くわけですが、トランザクションで考えるとコレが意外とやっかいなときがあります。そのような場合は SELECT FOR UPDATE とか使って行ロックをかけたりする訳なのですが、これまた予期せぬロック待ちの元になったりする場合があり得るので、あまり人に書かせたくない。 Oracle には UPSERT に相当する構文として MERGE 構文があるので、結構重宝します。ただし Oracle9 以降で実装された機能なのですが、今時 8i 以前を使
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く