繁体   English   中英

在存储过程中添加异常

[英]Add exception in stored procedure

我想使用oracle处理异常,因为我以前没有做过。 下面是我的存储过程。

create or replace
 PROCEDURE GET_VALID_LATLONG
 (
    P_XYCORDINATE IN VARCHAR2,
   P_SAPID IN VARCHAR2,  
   OUTR4GSTATENAME OUT SYS_REFCURSOR  
  )  
  AS
 v_counter number:=0;
 BEGIN
  DBMS_OUTPUT.ENABLE;

   OPEN OUTR4GSTATENAME FOR 
 SELECT DISTINCT(R4GSTATECODE),R4GSTATENAME 
                  FROM R4G_LB.R4GSTATEBOUNDARY_EVW 
                  WHERE SDE.ST_INTERSECTS(SDE.ST_GEOMETRY('POINT 
('||P_XYCORDINATE||')', 3),SHAPE) = 1;   

 END GET_VALID_LATLONG;

如何处理异常?

更新

我这样添加,发生错误时可以吗?

     create or replace
 PROCEDURE GET_VALID_LATLONG
 (
  P_XYCORDINATE IN VARCHAR2,
 P_SAPID IN VARCHAR2,  
OUTR4GSTATENAME OUT SYS_REFCURSOR  
 )  
 AS
   v_counter number:=0;
BEGIN
DBMS_OUTPUT.ENABLE;

    OPEN OUTR4GSTATENAME FOR 
   SELECT DISTINCT(R4GSTATECODE),R4GSTATENAME 
                   FROM R4G_LB.R4GSTATEBOUNDARY_EVW 
                   WHERE SDE.ST_INTERSECTS(SDE.ST_GEOMETRY('POINT 
   ('||P_XYCORDINATE||')', 3),SHAPE) = 1;   

EXCEPTION

   WHEN OTHERS THEN
      NULL;                      

END GET_VALID_LATLONG;

例如,可以在Oracle文档中找到预定义例外的列表。

https://docs.oracle.com/cd/A97630_01/appdev.920/a96624/07_errs.htm

您可以在您的exception子句中使用此异常名称列表,例如

WHEN TOO_MANY_ROWS THEN
    NULL;    -- whatever you wish to do here.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM