Oracle db に移行する mysql db に数百のトリガーがあります。オラクルで同等のものを見つけることができなかったという声明がたくさんあります。
INSERT INTO $some_kind_of_message._BD_TRIGG$ (dummy) VALUES (value);
私はこれをプロシージャと関数でも見ましたが、プロシージャを呼び出すアプリケーションにメッセージを「返す」ようです(私は思います)。私は両方の RDBMS の初心者ですが、Oracle を使用して数か月になります。
oracle の mysql のものを置き換える同等のステートメントはありますか? どうもありがとう。
編集:
これは多くのトリガーの例です。これは、ログインの検証に使用されます。オラクルのトリガー構文についてはよくわかりませんが、それは今の問題ではありません。「ケース」の部分はまだ mysql 構文にあります。mysql や oracle のドキュメントで情報を見つけることができませんでした。これは通常の挿入ではなく、mysql が使用するある種の戻りメッセージであり (それは私が推測することです)、関数やプロシージャでも見られます。オラクルが同じタスクを実行するためにそれを置き換えるにはどうすればよいですか?
CREATE OR REPLACE TRIGGER adduser
BEFORE INSERT
ON tbl_users
FOR EACH ROW
DECLARE flag INTEGER;
begin
flag := 1;
/* validate login */
IF(LENGTH(TRIM(:NEW.login)) < 4) THEN
flag := -1;
END IF;
/* valido clave */
IF(flag = 1) THEN
IF(LENGTH(:NEW.clave) < 3) THEN
flag := -2;
END IF;
END IF;
CASE flag
WHEN -1 THEN INSERT INTO $login_less_then_4_characters._BD_TRIGG$ (dummy) VALUES ('error');
WHEN -2 THEN INSERT INTO $pass_less_then_5_characters._BD_TRIGG$ (dummy) VALUES ('error');
ELSE flag := 0;
END CASE;
END;