アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちわ。
いまOracle10gを触っている者です。
autotrace機能を使おうと思い,ネットで調べて
plustrce.sqlを実行し、PLUSTRACEロールを作成しようとしました。
ところがplustrce.sqlのなかにある,
「v_$sesstat」,「v_$statname」,「v_$mystat」がない,
ということでそれぞれの実行箇所で
「ORA-00942: 表またはビューが存在しません。」というエラーが
出てしまいます。
したがって正常にロールが生成されていないようで,
このままあるユーザに権限を付与して,
"set autotrace on"としても,
「SP2-0618: セッション識別子が見つかりません。PLUSTRACEロールが有効かを確認してください。
SP2-0611: STATISTICSレポートを使用可能にするときにエラーが発生しました。」というエラーが出てしまいます。
おそらくはじめのエラーが障っていると思います。
どうすればエラーが取れるでしょうか?
教えてください。よろしくお願いします。

A 回答 (4件)

plustrce.sqlを実行したユーザは何ですか?


plustrce.sqlはsysで実行して使用するユーザに付与するようにします。
AUTOTRACEを使う手順は以下の方法で実行します。
(1),(2)はsysユーザで実行、(3)はPLUSTRACEを使用するユーザで実行
(1) SQL> @?/sqlplus/admin/plustrce.sql
(2) SQL> grant plustrace to hoge;
※hogeはユーザ名
(3) SQL> @?/rdbms/admin/utlxplan.sql

この回答への補足

ossan_hiroさん
回答ありがとうございます。
plustrce.sqlを実行したユーザは"SYS"です。
(1)を実行しようとしたときに,
「v_$sesstat」,「v_$statname」,「v_$mystat」がない,
といったエラーが出ます。
何か事前準備が要るのでしょうか?

補足日時:2006/10/31 11:29
    • good
    • 0

x$やv_$はsystem表領域が作成されるときに自動的に作成されるためないことはありえません。


権限がただ単にないだけと推定されますがいかがでしょうか?
v_$はsysユーザしかセキュリティの観点からアクセスできません。
    • good
    • 0
この回答へのお礼

gdcootieさん
回答ありがとうございました。

お礼日時:2006/12/08 18:14

(1)そのDBはどうやって(インストール時 or DBCA or スクリプト)作成しましたか?


(2)Oracleのパッチを当てましたか?
(3)sysユーザで以下のSQLを実行して、本当に無いのか確認してみてください。
col object_name format a30
col status format a12
select object_name,STATUS from dba_objects
where lower(object_name) like '%sesstat%';

ステータスがinvalidである場合。sysユーザで以下のコマンドで
コンパイルしなおしてください。
SQL> @?/rdbms/admin/utlrp.sql

無い場合は・・・CATALOG.SQLを実行してないとか?
再度DBを作成しなおすか、サポートセンターに問い合わせした方が
よいと思います。

>「v_$sesstat」はありませんが,「v$sesstat」はあります。
「v$sesstat」ではgrantすることはできません。
    • good
    • 0
この回答へのお礼

ossan_hiroさん
回答ありがとうございました。

お礼日時:2006/12/08 18:13

こんにちは。


こちらの10g環境では、何の事前準備をしなくても実行できましたよ。
本当にsysユーザーで実行して、エラーが出ているようなら、
サポートに連絡する必要があるかもしれません。

#実行ログ
% sqlplus /nolog

SQL> connect /as sysdba
Connected.

SQL> @?/sqlplus/admin/plustrce.sql
SQL>
SQL> drop role plustrace;
drop role plustrace
*
ERROR at line 1:
ORA-01919: role 'PLUSTRACE' does not exist


SQL> create role plustrace;

Role created.

SQL>
SQL> grant select on v_$sesstat to plustrace;

Grant succeeded.

SQL> grant select on v_$statname to plustrace;

Grant succeeded.

SQL> grant select on v_$mystat to plustrace;

Grant succeeded.

SQL> grant plustrace to dba with admin option;

Grant succeeded.

SQL>
SQL> set echo off

この回答への補足

gou2199さん
回答ありがとうございます。
そうですか…
ちなみにこちらのデータベースには
「v_$sesstat」はありませんが,「v$sesstat」はあります。
でもplustrce.sqlには
grant select on v_$sesstat to plustrace;
となっているんです。
「v_$sesstat」がない,というのはそもそもインストール時に
不備があったなどが原因で異常なんでしょうか?

補足日時:2006/10/31 13:46
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!