在PL/SQL过程中显示消息框

在PL/SQL过程中显示消息框,sql,stored-procedures,Sql,Stored Procedures,我有以下程序 CREATE OR REPLACE PROCEDURE Add_Shipment_Method( shipment_method_id_p IN NUMBER, shipment_description_p IN VARCHAR2) AS BEGIN INSERT INTO shipment_method SELECT shipment_method_id_p, shipment_description_p FROM dual WHERE NOT EXIS

我有以下程序

CREATE OR REPLACE PROCEDURE Add_Shipment_Method(
shipment_method_id_p IN NUMBER,
shipment_description_p IN VARCHAR2)
AS
BEGIN
INSERT INTO shipment_method 
    SELECT shipment_method_id_p, shipment_description_p
    FROM dual
    WHERE NOT EXISTS (SELECT * FROM SHIPMENT_METHOD WHERE SHIPMENT_METHOD_ID = shipment_method_id_p AND SHIPMENT_DESCRIPTION = shipment_description_p);
COMMIT;
EXCEPTION WHEN
OTHERS THEN
ROLLBACK;
END;
/
当行不存在时,该过程通常允许将新的装运方法添加到表装运方法中。 当主键'shipping\u method\u id'确实存在时,我想修改它并显示一个消息框,当它不存在时,允许写入行。
有什么建议吗?

您不能显示存储过程中的消息框

现在检查INSERT是否插入了任何行,并在输出窗口中显示消息

使用


注意:INSERT语句和“IF SQL%ROWCOUNT=0”验证之间不应存在任何其他语句。SQL%ROWCOUNT反映了最近执行的语句。

老实说,我不明白这一点
BEGIN
     INSERT INTO shipment_method 
     SELECT shipment_method_id_p, shipment_description_p
     FROM dual
     WHERE NOT EXISTS (SELECT * FROM SHIPMENT_METHOD 
                       WHERE SHIPMENT_METHOD_ID = shipment_method_id_p
                       AND SHIPMENT_DESCRIPTION = shipment_description_p);

     IF SQL%ROWCOUNT = 0 THEN           --if this is true, then no records were added.
      DBMS_OUTPUT.PUT_LINE( 'Not records added');     --writes this message

COMMIT;