在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;