首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在oracle语句中添加异常

如何在oracle语句中添加异常
EN

Stack Overflow用户
提问于 2015-07-30 13:08:06
回答 1查看 104关注 0票数 2

我有以下代码

代码语言:javascript
复制
CREATE PROCEDURE get_details (
  start_time IN  DATE,
  End_Time   IN  DATE,
  o_results1 OUT SYS_REFCURSOR,
  o_results2 OUT SYS_REFCURSOR,
  o_results3 OUT SYS_REFCURSOR,
  o_results4 OUT SYS_REFCURSOR,
  o_results5 OUT SYS_REFCURSOR,
  o_results6 OUT SYS_REFCURSOR
)
AS

BEGIN

  OPEN o_results1 FOR
  SELECT DESCRIPTION, ACTION_BY FROM table1 WHERE  date_time BETWEEN start_time AND End_Time;

  EXCEPTION
   WHEN NO_DATA_FOUND THEN 
   DBMS_OUTPUT.PUT_LINE('NO DATA EXISTS IN TABLE1');  

  OPEN o_results2 FOR
  SELECT *
  FROM   table2
  WHERE  date_time BETWEEN start_time AND End_Time;

  OPEN o_results3 FOR
  SELECT *
  FROM   table3
  WHERE  date_time BETWEEN start_time AND End_Time;

  OPEN o_results4 FOR
  SELECT *
  FROM   table4
  WHERE  date_time BETWEEN start_time AND End_Time;

  OPEN o_results5 FOR
  SELECT *
  FROM   table5
  WHERE  date_time BETWEEN start_time AND End_Time;

  OPEN o_results6 FOR
  SELECT *
  FROM   table6
  WHERE  date_time BETWEEN start_time AND End_Time;
END;
/

我想要的是,当我查询以下内容时,给出table1中没有数据的输出

代码语言:javascript
复制
VARIABLE o_result1 REFCURSOR; 
VARIABLE o_result2 REFCURSOR; 
VARIABLE o_result3 REFCURSOR; 
VARIABLE o_result4 REFCURSOR; 
VARIABLE o_result5 REFCURSOR; 
VARIABLE o_result6 REFCURSOR;

EXECUTE get_details( TO_DATE('16-Jul-2015 04:00:10', 'DD-MON-YYYY HH24:MI:SS'), TO_DATE('16-Jul-2015 20:14:16', 'DD-MON-YYYY HH24:MI:SS'), :o_result1, :o_result2, :o_result3, :o_result4, :o_result5, :o_result6 ); 

PRINT o_result1; 

这里,date_time是存储日期和时间的列。不过,我得到了一个错误。为什么会这样呢?请注意,我对oracle过程编写是个新手。

错误:

代码语言:javascript
复制
ORA-24338: statement handle not executed 24338. 00000 - "statement handle not executed" 
*Cause: A fetch or describe was attempted before executing a statement handle.     
*Action: Execute a statement and then fetch or describe the data. 
EN

回答 1

Stack Overflow用户

发布于 2015-07-30 13:52:39

使用begin ..结束于begin..如下所示结束

代码语言:javascript
复制
BEGIN 
BEGIN
<query>
<exception>
END;

<query>
<exception>


END;
/

When should I nest PL/SQL BEGIN...END blocks?获得帮助

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31715554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档