USER.TABLE_LNK_TRG.shにて、トリガ作成スクリプトUSER.TABLE_LNK_TRG.sqlをコンパイルしようとしています。
USER.TABLE_LNK_TRG.shとUSER.TABLE_LNK_TRG.sqlともに
変数ORACLE_SID_1の値としてdb1、
変数ORACLE_SID_2の値としてdb2
が入っているはずなのですが、USER.TABLE_LNK_TRG.sql内では
${ORACLE_SID_1}と${ORACLE_SID_2}がそのまま文字列として解釈され
(変数の値であるdb1、db2にはならない)、コンパイルに失敗します。
逆にUSER.TABLE_LNK_TRG.sql内で、${ORACLE_SID_1}と${ORACLE_SID_2}
を使わず、直接db1、db2と記述すると成功します。
トリガ作成スクリプトUSER.TABLE_LNK_TRG.sql内で、${変数}は使えないのでしょうか?
環境はOSはSolaris、DBはOracle9i、シェルはBシェルです。
_______________________________________________________________
~USER.TABLE_LNK_TRG.sh~
#!/bin/sh
ORACLE_SID_1="db1"
ORACLE_SID_2="db2"
#トリガコンパイル
sqlplus aaa/aaa <<-EOF
@USER.TABLE_LNK_TRG.sql
quit
EOF
exit
______________________________________________________________
~USER.TABLE_LNK_TRG.sql~
CREATE OR REPLACE TRIGGER USER.TABLE_LNK_TRG
BEFORE UPDATE
ON USER.TABLE FOR EACH ROW
declare
begin
update TABLE@${ORACLE_SID_1}_lnk
set col = :new.col;
update TABLE@${ORACLE_SID_2}_lnk
set col = :new.col;
exception
when others then
null;
end;
/
_______________________________________________________________
※${ORACLE_SID_1}、${ORACLE_SID_2}のままコンパイルされるので、
${ORACLE_SID_1}_lnkのDB環境、${ORACLE_SID_2}_lnkのDB環境が存在せずコンパイルエラー。
逆に直接db1、db2と記述するとdb1_lnkのDB環境、db2_lnkのDB環境が存在するので正常にコンパイル。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) laravel 本番環境でメールが送れません。 1 2023/02/17 17:57
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- MySQL PHP 画像のアップロード Qiita 2 2022/11/28 04:44
- その他(プログラミング・Web制作) Python でWindowsのショートカット(.lnk)のプロパティを参照したい 1 2023/02/01 15:09
- PHP php エラー 2 2022/10/23 16:43
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- Visual Basic(VBA) VBAで時間(00:00形式)を積算(足し算)したい 1 2022/11/15 17:04
- Visual Basic(VBA) ACCESS DAO で不要なテーブルのフィールド(列)の削除 4 2022/06/23 12:13
- MySQL SHOW CREATE TABLE posts;これって何ですか? 3 2022/08/28 22:57
- ソフトウェア 移行PCにDockerがインストールされていても各種開発環境のアプリはインストールが必要? 2 2023/05/21 21:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テーブルやカラムの物理名のネ...
-
batファイルでのSQL(oracle)...
-
ORA-14452について
-
SQLの中上級者へのレベルアップ...
-
SQLで今日の日付でWhereしたい
-
Oracleでの登録するユーザーと...
-
副問合せにLIKE文を使う方法は...
-
Oracle SQRの正式名称は何ですか?
-
10営業日前の日付を取得したい...
-
oracleのimpdpでORA-39166
-
Oracleですがsqlで質問です。 ...
-
sqlで質問です。 Aテーブルの情...
-
SQLについて教えて下さい。 主...
-
sqlで質問です。 idを元にidに...
-
オラクルゴールドについて
-
sqlのupdate文で質問です。 テ...
-
ビットで表せる数値について
-
データベースのカラムの型がCHA...
-
sqlで質問です。 aテーブルとb...
-
「Inaccessible Boot Device」
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
oinstallとdbaグループ、所有ユ...
-
Oracleのデータをマージする
-
VLM設定について
-
SQLスクリプト内で、${変数}と...
-
オラクル11gでインストール失敗...
-
SIDとSERVICE_NAMEの違いとは?
-
ORA-12170のエラーについて
-
突然オラクルへ接続できなくな...
-
住所コード11桁の住所データ...
-
.NET Frameworkがコントロール...
-
Windows Storeを使わずに付箋を...
-
DB2で SQL1032N start databas...
-
倒産した18禁ゲーム会社のパ...
-
データベース接続情報作成しま...
-
Oracle11g SQLPlusログインにつ...
-
oracleのメモリ使用量が97%ほど...
-
SQL 全角半角混在の文字列から...
-
AWS初学者です。 AWSの学習を終...
-
正しいSQLなのに「ORA-00936: ...
-
データソース名および指定され...
おすすめ情報