Plsql 获取PL/SQL上的详细sqlerrm语法

Plsql 获取PL/SQL上的详细sqlerrm语法,plsql,plsqldeveloper,Plsql,Plsqldeveloper,我正在尝试调试试图使用SOAP web服务的函数的PL/SQL上的“HTTP请求失败”错误。建议使用get_detaild_sqlerrm获取错误消息的详细信息,但是当我尝试运行建议的查询时,它会抛出一个“invalid SQL statement”错误 我的问题是: UTL_HTTP.get_detailed_sqlerrm RETURN VARCHAR2; 我使用的是PL/SQL Developer IDE,数据库是Oracle 11g。您可能应该运行 select utl_http.g

我正在尝试调试试图使用SOAP web服务的函数的PL/SQL上的“HTTP请求失败”错误。建议使用get_detaild_sqlerrm获取错误消息的详细信息,但是当我尝试运行建议的查询时,它会抛出一个“invalid SQL statement”错误

我的问题是:

UTL_HTTP.get_detailed_sqlerrm 
RETURN VARCHAR2;

我使用的是PL/SQL Developer IDE,数据库是Oracle 11g。

您可能应该运行

select utl_http.get_detailed_sqlerrm from dual;
请注意-它不是通用函数,仅适用于UTL_HTTP错误。例如,它不适用于SQL错误:

SQL> select deptno, min(sal) from emp;
select deptno, min(sal) from emp
       *
ERROR at line 1:
ORA-00937: not a single-group group function


SQL> select utl_http.get_detailed_sqlerrm from dual;

GET_DETAILED_SQLERRM
--------------------------------------------------------------------------------
SQL> begin
  2    select empno from emp;
  3  end;
  4  /
  select empno from emp;
  *
ERROR at line 2:
ORA-06550: line 2, column 3:
PLS-00428: an INTO clause is expected in this SELECT statement


SQL> select utl_http.get_detailed_sqlerrm from dual;

GET_DETAILED_SQLERRM
--------------------------------------------------------------------------------


SQL>
。。。PL/SQL错误也不适用:

SQL> select deptno, min(sal) from emp;
select deptno, min(sal) from emp
       *
ERROR at line 1:
ORA-00937: not a single-group group function


SQL> select utl_http.get_detailed_sqlerrm from dual;

GET_DETAILED_SQLERRM
--------------------------------------------------------------------------------
SQL> begin
  2    select empno from emp;
  3  end;
  4  /
  select empno from emp;
  *
ERROR at line 2:
ORA-06550: line 2, column 3:
PLS-00428: an INTO clause is expected in this SELECT statement


SQL> select utl_http.get_detailed_sqlerrm from dual;

GET_DETAILED_SQLERRM
--------------------------------------------------------------------------------


SQL>
。。。但适用于UTL_HTTP相关错误:

SQL> declare
  2    l_request utl_http.req;
  3  begin
  4    l_request := utl_http.begin_request('http://www.some_company.com');
  5  end;
  6  /
declare
*
ERROR at line 1:
ORA-29273: HTTP request failed
ORA-06512: at "SYS.UTL_HTTP", line 1130
ORA-24247: network access denied by access control list (ACL)
ORA-06512: at line 4


SQL> select utl_http.get_detailed_sqlerrm from dual;

GET_DETAILED_SQLERRM
--------------------------------------------------------------------------------
ORA-24247: network access denied by access control list (ACL)

SQL>

UTL\u HTTP.get\u detailed\u sqlerrm RETURN VARCHAR2不是查询或SQL语句。(现在我检查一下,)