oracle 表单警报语法

oracle Form Alert syntax

我想在投资者没有任何交易时显示警报

表格:

Investor    
Investor_Number PK  Number (7,0)    Not Null
    First_Name      Varchar2 (25)   Not Null
    Last_Name       Varchar2 (30)   Not Null
    Account_Number      Number (7,0)        FK  Not Null

Portfolio   
    Portfolio_Number    PK  Number (7,0)    Not Null
    Investor_Number     Number (7,0)        FK  Not Null
    Portfolio_Description       Varchar2 (50)   Null

Transaction 
    Portfolio_Number    PK  Number (7,0)        FK
    Stock_Code      Varchar2 (10)       FK
    Transaction_Date        Date
    Exchange_Code       Varchar2 (4)        FK
    Broker_Number       Number (7,0)        FK
    Buy_Sell        Char (1)

DECLARE

    V_count number;
BEGIN

select count(portfolio_number)
into V_count
FROM Transaction
where portfolio_number = :PORTFOLIO.portfolio_number;

    If  V_count = null then 
        Message('No Transaction');
    End if;
END;

上面的代码不起作用,我不知道语法。

现在我在块级别使用post-查询,当投资者没有任何交易时将显示警报。 两个块显示 "Investor" 和 "Portfolio"。它的工作原理是当点击下一条记录时,如果该记录没有任何交易,它会弹出一个警报。

假设您编写的查询工作正常,那么需要进行两处更改:

  • COUNT不会returnNULL;即使可以,您也会使用 if v_count is null,而不是 if v_count = null
  • 连续两次 MESSAGE 调用将强制 Forms 在屏幕上的弹出窗口 window 中显示消息;如果您只使用一个 MESSAGE,它将显示在屏幕底部的状态行中
    • 或者,查看 真实 警报如何工作;但是是的 - 2 MESSAGEs 更简单

DECLARE
  V_count number;
BEGIN
  select count(portfolio_number)
    into V_count
    FROM Transaction
    where portfolio_number = :PORTFOLIO.portfolio_number;

  If  V_count = 0 then           --> COUNT never returns NULL
     Message('No Transaction');  --> 2 consecutive MESSAGE calls to "simulate" an alert
     Message('No Transaction');   
  else
     Message('Number of transactions = ' || to_char(v_count));   
     Message('Number of transactions = ' || to_char(v_count));   
  End if;
END;