我的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
答案 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;