关于引发异常的Html代码

关于引发异常的Html代码,html,oracle,plsql,Html,Oracle,Plsql,嗯,我对pl/sql和Oracle都不太了解,我遇到了一个我无法解决的问题 当我手动引发异常时,我想显示一个html代码或一个过程,我尝试了无数种方法,这是我找到的最合理的解决方案,它一直不起作用 在这段代码中,我试图不让人们删除和艺术家,如果一个相册只有这个艺术家,正因为如此,我想显示一个html页面说,而不是oracle的调试页面 create or replace TRIGGER delete_artist after delete ON artist DECLARE albumar

嗯,我对pl/sql和Oracle都不太了解,我遇到了一个我无法解决的问题

当我手动引发异常时,我想显示一个html代码或一个过程,我尝试了无数种方法,这是我找到的最合理的解决方案,它一直不起作用

在这段代码中,我试图不让人们删除和艺术家,如果一个相册只有这个艺术家,正因为如此,我想显示一个html页面说,而不是oracle的调试页面

create or replace TRIGGER delete_artist
after delete
ON artist
DECLARE
   albumartist NUMBER;
   user_xcep EXCEPTION;
BEGIN
   select count(*) INTO albumartist from
   (
      select a.ID, count(cn.artist)
      from album a left join conjunt cn on a.id = cn.album
      group by a.ID
      having count(cn.artist) = 0
   ) album_artist;
   IF albumartist > 0 THEN
      RAISE user_xcep;
   END IF;
EXCEPTION
   when user_xcep then
      htp.p('<h1>You can&#39t leave an album without an artist</h1>');
   RAISE;
END;

异常被抛出到实现删除的程序。这种方法没有人们希望在设计良好的应用程序中看到的典型的关注点分离[即,1由触发器提供错误消息;2由应用程序呈现错误消息,可以是html,…无论什么]。

在异常块内部引发再次引发异常,这将导致出现调试页面。删除异常块中的RAISE应该会显示htp.p结果。

那么您到底面临什么问题呢?你想知道是否有比你现在使用的更好的方法来完成你想要的东西吗?我面临的问题是,我得到的是调试页面,而不是代码中显示的html代码。它做了一会儿,但当我不想做的时候,它会进行删除:c