+ -
当前位置:首页 → 问答吧 → 真的很不赞成在UBUNTU上用oracle

真的很不赞成在UBUNTU上用oracle

时间:2011-06-21

来源:互联网

代码:
-- 交易视图插入时触发器
CREATE TRIGGER Trade_V_T_I
    INSTEAD OF INSERT ON Trade_V
    FOR EACH ROW
BEGIN
    INSERT INTO Trade (
        C_Id,
        P_Id,
        Price,
        Count,
        "Date",
        Note
    )
    VALUES (
        (
            SELECT Id
            FROM Client_V
            WHERE
                City = NEW.City
                AND
                Unit = NEW.Unit
                AND
                Name = NEW.Client
        ),
        (
            SELECT Id
            FROM Product_V
            WHERE
                Factory = NEW.Factory
                AND
                "Type" = NEW.Product
        ),
        -- 首次
        (
            CASE WHEN NEW.Price ISNULL THEN
                (
                    SELECT Price
                    FROM Product_V
                    WHERE
                        Factory = NEW.Factory
                        AND
                        "Type" = NEW.Product
                )
            ELSE
                NEW.Price
            END
        ),
        NEW.Count,
        NEW."Date",
        NEW.Note
    );

    UPDATE Client_V SET
        Arrear = Arrear
            + (
                -- 再次
                (
                    CASE WHEN NEW.Price ISNULL THEN
                        (
                            SELECT Price
                            FROM Product_V
                            WHERE
                                Factory = NEW.Factory
                                AND
                                "Type" = NEW.Product
                        )
                    ELSE
                        NEW.Price
                    END
                )
                * NEW.Count
            )
    WHERE
        City = NEW.City
        AND
        Unit = NEW.Unit
        AND
        Name = NEW.Client;
END;

两次同样的代码,不能一次保存在一个临时变量中,两次使用?

作者: 自由建客   发布时间: 2011-06-21