Oracle anchor.png Edit

  • 使用するRBSを明示指定する。

使用するRBSをrbs1に指定する(ディクショナリ管理のみ)。

SQL> set transaction user rollback segment rbs1;
  • アーカイブモードのチェック

現在のアーカイブモードを確認する(sysdba権限が必要)。

SQL> archive log list
  • 変数の使用方法
define cur_user_id=10101
col new_user_id new_value v_user_id
spool &cur_user_id..log
SELECT MAX(user_id)+1 AS new_user_id
FROM user_data;
SELECT &cur_user_id,&v_user_id
FROM DUAL;
  • 月曜日だったら改行を入れる
set recsep off
SELECT
DECODE(TO_CHAR(reg_date,'D'),'2',chr(10),'')
||TO_CHAR(reg_date,'DY')
FROM time_master;
  • V$表の参照権限付与
GRANT SELECT ON v_$session TO user;
  • ディクショナリの参照権限付与
GRANT SELECT ANY DICTIONARY TO master;
  • 詳細情報
  • deadlock(ORA-60)のシューティング
    • alertファイルのチェック

alertファイルより詳細情報がロギングされているtrcファイルをチェック。

    • trcファイルのチェック

"Current SQL"の項目で問題のクエリーを特定。
"Rows waited on:"にレポートされている両者のobjnをチェック。
objnはuser_object.object_idになっているので、問題のobjectを特定。

※9.2以降であれば…

"OTHER waiting sessions:"のレポートで、衝突したクエリーをチェック。

  • Listenerログのローテート
$ lsnrctl
LSNRCTL> set current_listener LISTENER_NAME
LSNRCTL> show log_file NEWFILE.log
LSNRCTL> set log_file NEWFILE.log
LSNRCTL> exit
  • ProcedureからDDLの発行

以下のコマンドでProcedureからDDLを発行できる。

EXECUTE IMMEDIATE 'TRUNCATE TABLE test_table';
  • リモートDBのProcedureを実行

リモートのDBに対して実施する場合は、以下のようなプロシージャをリモートDBに登録。

CREATE OR REPLACE PROCEDURE REMOTE_DDL(ddl IN VARCHAR2)
IS
BEGIN
        EXECUTE IMMEDIATE ddl;
END;

以下のコマンドでこのプロシージャをキックする。

EXECUTE remote_ddl@remotedb('TRUNCATE TABLE test_data')
  • DBMS_OUTPUTパッケージによるバッファを設定する

以下のコマンドでDBMS_OUTPUTパッケージのバッファを1000000に設定。

DBMS_OUTPUT.ENABLE(1000000);
  • 日付のフォーマット変更
    TO_CHARでも変更できるがセッション単位で変更したい場合
ALTER SESSION SET NLS_DATE_FORMAT='YYYY/MM/DD HH24:MI:SS';
  • 特殊文字コード
    • chr(9) : タブ
    • chr(10) : 改行(\n)
    • chr(13) : 改行(\r)
  • 改行コードの削除
id  name
--- ---------------------
100 日本語文字列
    のデータ

上記のように日本語の後に改行が入っているものを

id  name
--- ---------------------
100 日本語文字列のデータ

と表示する。

SELECT
        id,
        REPLACE(name,chr(10),'')
FROM
        test_data;

この結果

id  name
--- ---------------------
日本語文字列のデータ

このように表示される場合は

SELECT
        id,
        REPLACE(name,chr(13)||chr(10),'')
FROM
        test_data;
  • パッケージのリコンパイル
ALTER PACKAGE package_name COMPILE;
ALTER PACKAGE package_name COMPILE BODY;
  • SQL*Plusのコマンド
    • sqlplus -S

サイレントモードでsqlplusを起動

$ sqlplus -S USERNAME/PASSWORD@CONNECT_STRING
    • spool

/tmp/sql.logに出力をロギングする。

SQL> spool /tmp/sql.log
    • show

カレントのユーザー名を表示する。

SQL> show user

"db_"で始まる初期パラメータの一覧を表示する。

SQL> show parameter db_
    • col

クエリー結果のusername(varchar2)を10文字までで表示する。

SQL> col username format a10

クエリー結果のuser_id(number)を4文字までで表示する。

SQL> col user_id format 9999
    • set

一行の文字数を150文字にする。

SQL> set lin 150

カラムヘッダを1000行ごとに表示する。

SQL> set pages 1000

クエリー終了時のレポートを表示しない。

SQL> set feed off

クエリーの出力結果を表示しない(バックグラウンドのみ)。

SQL> set term off

クエリーの処理時間を表示する。

SQL> set timi on

カラムヘッダを表示しない。

SQL> set hea off

LONG型カラムの表示文字数を2000文字にする。

SQL> set long 2000

DBMS_OUTPUTパッケージの出力を許可する。

SQL> set serveroutput on

&を置換しないようにエスケープする。

SQL> set escape \
SQL> SELECT 'test&nbsp' FROM DUAL;

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom
Counter: 1062, today: 1, yesterday: 1
最終更新: 2010-01-13 (水) 13:54:11 (JST) (858d) by aqua
オススメ

おすすめ
カレンダ
前月2012年 5月翌月
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
<今日>
ログイン
ユーザ名:

パスワード:



パスワード紛失

新規登録
天気予報

資料提供天気予報コム
アクセスカウンタ
今日 : 161161161
昨日 : 577577577
総計 : 363715363715363715363715363715363715