シンプルなトリガーコマンドに問題があります。このトリガ操作では、テーブルaddress_ritに値を挿入し、RITで勉強する人がテーブル人に挿入されます。トリガーコマンドの構文は次のとおりです。SQL Oracle Trigger
CREATE OR REPLACE TRIGGER addr
AFTER INSERT ON person
FOR EACH ROW
WHEN (NEW.college = 'RIT')
BEGIN
INSERT INTO address_rit (name, address, state)
VALUES (NEW.name, NEW.address, (SELECT name FROM states WHERE NEW.statecode = states.statecode));
END;
/
トリガーはコンパイルされますが、警告があります。しかし、さらに検査すると、実際にトリガにエラーがあることがわかります。コンパイルのエラーは次のとおりです。
PL/SQL: SQL Statement ignored ERROR
PL/SQL: ORA-00984: column not allowed here ERROR
エラーは構文エラーですが、解決策が見つかりません。私は詳細を追加する必要がある場合はお知らせください。ご助力ありがとうございます。最低で
問題は、あなたが同時に 'values'と' select'を使っていることです...しかし、conradの答えが行く方法です。詳細は、['insert'構文](http://www.techonthenet.com/sql/insert.php)を見てください。 – Ben
@Ben - 'INSERT ... VALUES'ステートメントにスカラーサブクエリを置くことができます。これはちょっと風変わりですが、有効な構文です。 –
@JustinCave、よく毎日何か新しいことを学ぶ... :-)私はいつもそれが違法だと思った。私は頻繁にそれをやっていませんが... – Ben