PL/SQLを学習しようとしていて、どのように取り組むべきかわからない課題がありました。PL/SQLアイテムのリスト、レコードが存在するかどうかを確認します。作成しない場合は更新します。
注文の一覧が表示されます。私は、次の方法でそれらのそれぞれのために私ORDERテーブルをチェックしたいん:順序が存在する場合は
- チェック、オーダーfullfilled(0または1)
- 場合は順序がある場合は何がレコード
- チェックを作成した場合1
に(0)、更新をfullfilledない私は一緒に私は1つの順序のためにこれを行うことができると思うのスクリプトを入れて、私はそれが非常に良いではないと確信しています:
DECLARE
tmp NUMBER;
tmp2 NUMBER;
o_id NUMBER := 999;
BEGIN
/*Checking if order exists */
SELECT COUNT (*)
INTO tmp
FROM ORDERS
WHERE ORDERID = o_id;
IF (tmp = 0) THEN
/* INSERT HERE */
END IF;
SELECT FULLFILLED INTO tmp2
FROM ORDERS
WHERE ORDERID = o_id;
IF (tmp2 = 0) THEN
/* UPDATE... */
END IF;
end;
私はこのスクリプトを効率的にするために何を調べるべきですか、何かアドバイスをありがとうと思いますか?ありがとうございました。
"USING"のselect文で "dual"を使用した理由を説明してください。 – Ziqq