Oracle Web应用程序中显示ORA错误

时间:2013-06-17 20:30:37

标签: oracle oracle-apex

我的Oracle Web App出错了。 当我在浏览器中输入网址“http://mydomain.com/pls/docs”时,出现此错误:

  

Estado de Descarga

     

Descarga delarchivofalló。 ORA-01403:未找到任何数据。 ORA-01403:未找到数据

产生此错误的代码是:

PROCEDURE LEP_DESCARGA_ARCHIVO IS

      lv_FilePath VARCHAR2(32000);
      lv_FileName VARCHAR2(32000);
  BEGIN

lv_FilePath := SUBSTR(owa_util.get_cgi_env('PATH_INFO'),2);


     SELECT name INTO lv_FileName
     FROM table_file
     WHERE UPPER(name) like UPPER(lv_FilePath);
     wpg_docload.download_file(lv_FileName);

EXCEPTION

  WHEN OTHERS THEN

    HTP.htmlopen;
    HTP.headopen;
    HTP.title('Archivo Descargado');
    HTP.headclose;
    HTP.bodyopen;
    HTP.header(1, 'Estado de Descarga');
    HTP.print('Descarga del archivo ' || lv_filePath || ' falló.');
    HTP.print(SQLERRM);
    HTP.bodyclose;
    HTP.htmlclose;
END LEP_DESCARGA_ARCHIVO;

问题是Error在Error中显示的信息太多。 LEP_DESCARGA_ARCHIVO 对我网站中的其他流程非常重要。

我必须在哪里配置Oracle以便不显示此错误?我的意思是如果我键入URL,我不想得到这个错误:

https://mydomain.com/pls/docs/servlets/index.html
**Error:** Descarga del archivo servlets/index.html falló. ORA-01403: no data found

h t t p s : / / m y d o m a i n . c o m / p l s / d o c s /
**Error:** Descarga del archivo falló. ORA-01403: no data found                        

h t t p s : / / m y d o m a i n . c o m / p l s /d o c s / s e r v l e t s/
**Error:** Descarga del archivo servlets/ falló. ORA-01403: no data found 

1 个答案:

答案 0 :(得分:0)

您出现这个错误有两个原因。

首先,此查询不返回任何数据:

SELECT name INTO lv_FileName
  FROM table_file
 WHERE UPPER(name) like UPPER(lv_FilePath);

这就是引发异常的原因。表name中没有TABLE_FILE与您的变量lv_filename匹配。是否要修复此错误取决于您。

显示错误的第二个原因是因为这一行:

HTP.print(SQLERRM);

输出它。如果您不想输出错误,则不必输入。

如果你愿意的话,明确地捕捉这个错误并对它做些什么可能更为正常。

begin
   ...
   select name into ...
   ...

exception 
   when no_data_found then
      -- do something
   when others then
      -- do something else
end;