sql >> データベース >  >> RDS >> Oracle

データベースがsysdateより上位の場合にのみ削除する手順

    この条件は、次のように手順の開始時に追加できます-

    PROCEDURE Remove_Customer(Customer_Id VARCHAR2) IS
      l_Order_Date DATE;
    BEGIN
      BEGIN
        SELECT MAX(Delivery_Date)
          INTO l_Order_Date
          FROM Placed_Order
         WHERE Placed_Order.Fk1_Customer_Id = Customer_Id;
      EXCEPTION
        WHEN OTHERS THEN
          l_Order_Date := SYSDATE - 1;
      END;
      IF l_Order_Date < SYSDATE THEN
        DELETE FROM Order_Line
         WHERE Order_Line.Fk1_Order_Id IN
               (SELECT Order_Id
                  FROM Placed_Order
                 WHERE Placed_Order.Fk1_Customer_Id = Customer_Id);
        DELETE FROM Placed_Order
         WHERE Placed_Order.Fk1_Customer_Id = Customer_Id;
        DELETE FROM Customer WHERE Customer.Customer_Id = Customer_Id;      
        --Total_Customers := Total_Customers - 1; -- is it a global variable in the package?
      ELSE
        Dbms_Output.Put_Line('Customer currently has a order been delivered');
      END IF;
    END;
    



    1. ER_NOT_SUPPORTED_AUTH_MODE-MySQLサーバー

    2. Sysbenchを使用してPostgreSQLのパフォーマンスをベンチマークする方法

    3. データプロバイダーを使用してphp-mysqlデータページネーションを実装する方法

    4. mysqlphpから画像をフェッチします