
WindowsXPのOracle9i環境です。
以下のようなトリガーを作成しました。
create or replace trigger kan_trg
after update or insert on t_kan
declare
begin
execute immediate 'create or replace view V_test as select
・・
from t_kan with read only';
end;
/
その後、試しに「insert into t_kan ・・・」 と実行してみましたが、「ORA-04092:トリガーはCOMMITできません」が発生します。
色々調べましたがトリガーの中にCOMMIT文を入れることはできないようです。どのようにすれば解決するか、ご教示いただけませんでしょうか?
宜しくお願い致します。
No.2
- 回答日時:
insert into したセッションとは別のセッションで検索しようとしていませんか。
AFTERトリガでもCOMMITしていないデータは別セッションからは検索できませんよ。
ご回答ありがとうございます!
同一セッションで検索してますし、commitもしております。
他に何か考えられることありますでしょうか?
No.1
- 回答日時:
「create any view」権限を持ったユーザーで
create or replace procedure kan_proc(str in varchar2)
is
PRAGMA AUTONOMOUS_TRANSACTION;
-- ↑ 自律型トランザクション プラグマ
begin
execute immediate str;
end;
/
create or replace trigger kan_trg
after update or insert on t_kan
begin
kan_proc('create or replace view V_test as select * from t_kan with read only');
end;
/
「create any view」権限はロール経由では無効になるので、DBA権限を
持ったユーザーでプロシージャを作っても実行時「権限不足」になるので
注意。
ご回答ありがとうございます!
「自律型トランザクション プラグマ」というのが調べても高度でよく理解できませんでしたが、とりあえずビューは作成できたようです。
ところが、t_kanテーブルにinsert文にてテストしてみましたが、トリガーにて「after」指定にもかかわらず、作成されたビューの中にはinsertしたレコードが入ってきませんでした。
それでは意味がないのですが、なぜなのでしょうか??
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Statement ignored というエラー
-
oracleユーザーの権限確認方法...
-
Access VBAで行ラベルが定義さ...
-
Accessのマクロでモジュールを...
-
Accessの数値から時間に変換す...
-
キャッシュを使わずにSELECTを...
-
sqlplusでヘッダーが付かない
-
PL/SQLでSPOOLさせたいのですが...
-
SQL*Plusの終了はquit?exit?
-
14桁の日付(YYYYMMDDHHMMSS)を...
-
PL/SQLカーソルの2重FORループ...
-
sqlplusのspoolで空白行出現
-
ストアドプロシジャからストア...
-
OutlookVBAで作成したマクロに...
-
ALTER SESSIONについて
-
SQL文のエラー
-
callで順に実行されるプロシー...
-
ACCESS2007インポート時の空白...
-
【Excel VBA】 WorksheetやRa...
-
Oracleで検索すると、フリーズ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Statement ignored というエラー
-
ODBCリンクの際にACCESSでは読...
-
会社の〇〇部と〇〇課の違いっ...
-
異なるスキーマのビューを元に...
-
権限で「委任」「専決」とあり...
-
別のスキーマのテーブルアップ...
-
roleの権限確認方法
-
Poweruser権限でのIPアドレス変...
-
トリガーにてビューを作成しよ...
-
Oracle 10g 他スキーマの参照権...
-
oracleユーザーの権限確認方法...
-
DBMS_LOCK.SLEEPについて
-
Oracle 10g 権限付与
-
Accessのマクロでモジュールを...
-
Access VBAで行ラベルが定義さ...
-
sqlplusでヘッダーが付かない
-
キャッシュを使わずにSELECTを...
-
callで順に実行されるプロシー...
-
SQLserver算術オーバーフロ...
-
sqlplusのspoolで空白行出現
おすすめ情報