Oracle8.1.7にて、あるAユーザーの所有物を全てExportし、その後、Bユーザーの所有物としてImportしようとすると、データベーストリガーのImport時にエラーが発生します。その他テーブルのImportは全て、成功しています。
(FROMUSER=A TOUSER=Bとしてimpしています。)
そこで、LOGを見てみると、データベーストリガーのCreate時にトリガー自体はBユーザーの所有物としてImportしようとしているが、そのトリガー作成SQL文内のテーブル参照部分がAの所有物として指定されている為、エラーが発生しているという事がわかりました。
create trigger B.trigger_name ~ on A.table_name
となっていました。
これは、impの仕様?バグ?なのでしょうか?それとも、なにか他にImport時に指定するオプションがあるのでしょうか?
回避方法等ご存知でしたら教えてください。
あと、このCreate Trigger文をSQL PLUSに手動で貼りつけて実行させようとしたら、何の反応もありませんでした。
まるで、このコマンドを認識していないという感じでした。SQL PLUSではCreate Trigger文は処理されないのでしょうか?因みにSQL Worksheetにて実行は出来ました。
こちらもご存知の方お願いします。
No.2ベストアンサー
- 回答日時:
#1です。
> トリガーを作成する時にあえて、テーブルにユーザー指定を行っていると、この
> 様な事になってしまうのですか?imp/expでユーザー変更オプション指定しても
> そこまでは変更してくれないという事なんですね?
その通りです。これはトリガーに限ったことではなく、
テーブルなどOracleのオブジェクト全般そうみたいです。
> あと、SQL*PLUSで;はつけたのですが。。。
> /はどういう時につけるのでしょう。普通select文などでは;でいいですよね。違> いはなんですか?
;は文の終わりを意味します。したがって文末につけます。
/は文の最終行を示します。これは文のあと1改行してから/だけの行を入れます。
文の直後につけることは出来ません。
つまり、入力する場所だけの違いで、意味はほとんど同じです。
ちなみに、これはSelect文でも同じです。
No.1
- 回答日時:
EXP/IMPでそのような不具合があるということは聞いたことがありません。
もしかしてAにトリガーを作った時、テーブル名をユーザー名指定(A.table_name)
で作ってたりしませんか?
それとSQL*PLUSでトリガーは普通に作成することが出来ます。
Create Triggerが実行されないのはもしかして末尾に/もしくは;
をつけてないためではないでしょうか。
お礼が遅れてすいません。投稿があった時にメールを送信するにチェックしてたはずなのですが、来なかったので全然見てませんでした。ごめんなさい。本題ですが、トリガーを作成する時にあえて、テーブルにユーザー指定を行っていると、この様な事になってしまうのですか?imp/expでユーザー変更オプション指定してもそこまでは変更してくれないという事なんですね?
あと、SQL*PLUSで;はつけたのですが。。。
/はどういう時につけるのでしょう。普通select文などでは;でいいですよね。違いはなんですか?
お礼ではなくて、再質問になってしまいました。返答頂ければ、うれしいです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- MySQL MySQLのテーブル作成でハイフン - は使用できないのでしょうか? 2 2022/10/21 16:50
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- MySQL 何にかが違うから エラーなんでしょうね! 2 2022/09/18 05:28
- MySQL PhpMyAdminで作成して実行せよ。 東京23区を、皇居を中心とした4つのエリア(南東, 南西, 1 2023/06/11 11:58
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- PHP プログラムコードを入力する場合改行してもいいですか? 2 2022/10/02 16:05
- Access(アクセス) アクセス 削除するレコードを含んだテーブルを指定してくださいのエラー対処方法 1 2022/11/24 15:01
- オープンソース Flaskでサーバー立ち上げに関して 1 2023/08/12 21:02
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAの実行時エラー'2522'について
-
Accessでクエリを完了できませ...
-
Access VBA [リモートサーバー...
-
ACCESSのODBCリンクテーブルに...
-
ACCESS2007 フォーム 「バリア...
-
accessでSQL実行時のテーブル名...
-
Select ~ into ~ で作成した...
-
ユニオンクエリで繋げられるテ...
-
実行時エラー3086 削除クエリ...
-
SQL SERFVER で外部キーのエラ...
-
CSEでのデータベース作成時のエ...
-
SSIS 変数の値をSQL実行タスク...
-
大きなテーブルに対する問い合...
-
ODBCエラーについて
-
Access Update文の副問い合わせ
-
SQL Serverのテーブルってどう...
-
AccessのテーブルをSQL Server...
-
「マスタ」と「テーブル」の違...
-
ACCESSのSQLで、NULLかNULLでな...
-
2つのテーブルから条件に一致...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access VBA [リモートサーバー...
-
ACCESS2007 フォーム 「バリア...
-
Accessでクエリを完了できませ...
-
実行時エラー3086 削除クエリ...
-
ACCESSのODBCリンクテーブルに...
-
SQL Serverのテーブルってどう...
-
VBAの実行時エラー'2522'について
-
ユニオンクエリで繋げられるテ...
-
Select ~ into ~ で作成した...
-
TRY CATCHでシステムエラーを検...
-
accessでSQL実行時のテーブル名...
-
Oracleデータベーストリガーの...
-
AccessのテーブルをSQL Server...
-
SSIS 変数の値をSQL実行タスク...
-
Access Update文の副問い合わせ
-
勤続年数の求め方
-
DB2 create tableコマンドでエ...
-
結合テーブルクエリPrimaryKey...
-
PhpMyAdminで作成して実行せよ...
-
SQL SERFVER で外部キーのエラ...
おすすめ情報