ねら~ITエンジニア雑記

やきうのお兄ちゃんが綴るOracle Databaseメインのブログ

ログインしているユーザの名前を返すSQLファンクション(Oracle)

USERファンクションでログインしているユーザの名前を取得できる。

SQL> SELECT USER FROM DUAL;

USER
---------------------------
SCOTT

SQL>

SYS_CONTEXT を使ってた今までの苦労は一体、、、orz

SQL> SELECT SYS_CONTEXT('USERENV', 'SESSION_USER') FROM DUAL;

SYS_CONTEXT('USERENV','SESSION_USER')
-------------------------------------
SCOTT

SQL>

使い道は、例えば以下のように自スキーマに在るテーブルの統計を取得する時などに。

EXEC DBMS_STATS.GATHER_TABLE_STATS(USER, 'TBL_A');

Oracle Database SQL言語リファレンス
11gリリース2(11.2)

B56299-02
USERファンクション
http://download.oracle.com/docs/cd/E16338_01/server.112/b56299/functions227.htm#sthref1751
SYS_CONTEXTファンクション
http://download.oracle.com/docs/cd/E16338_01/server.112/b56299/functions184.htm#i1038176

Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス
11g リリース2(11.2)

B56262-02
141 DBMS_STATSパッケージ
GATHER_TABLE_STATSプロシージャ
http://download.oracle.com/docs/cd/E16338_01/appdev.112/b56262/d_stats.htm#i1036461