0

我的 Oracle Web App 出现错误。当我在浏览器中键入 URL“ http://mydomain.com/pls/docs ”时,我收到此错误:

Estado de Descarga

Descarga del archivo falló。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;

问题是错误在错误中显示了太多信息。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 
4

1 回答 1

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;
于 2013-06-17T20:50:18.000 回答