首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CURSOR...IF...CURSOR..else条件

CURSOR...IF...CURSOR..else条件
EN

Stack Overflow用户
提问于 2014-03-10 08:37:29
回答 1查看 178关注 0票数 0

我试图在IF条件中使用游标FOR循环,但出现错误。以下是详细信息:

代码语言:javascript
复制
OPEN c_tab_var FOR v_sql;
 Loop
fetch c_tab_var into v_cur_inv_var;
exit when c_tab_var%notfound;

For v_cur_bde IN
(
    SELECT DISTINCT BDE.col1, BDE.col2
    FROM   tab BDE
    ORDER BY BDE.col1, BDE.col2, BDE.col3....
)

LOOP 
If v_cur_bde.col1 = v_cur_inv_var.col1 AND v_cur_bde.col2 = v_cur_inv_var.col2 THEN
(
    FOR v_cur_var IN
   (
      SELECT.....
   )
   LOOP
   -
   -
   -
)
ELSE
(
    -
  -
    -
)
END IF;

下面是我得到的错误:

过程ABC的编译错误

错误: PLS-00103:在需要以下内容之一时遇到符号"FOR“:

代码语言:javascript
复制
      ( - + case mod new not null <an identifier>
      <a double-quoted delimited-identifier> <a bind variable>
      continue avg count current exists max min prior sql stddev
      sum variance execute forall merge time timestamp interval
      date <a string literal with character set specification>
      <a number> <a single-quoted SQL string> pipe
      <an alternatively-quoted string literal with character set specification>
      <an alternative

第: 57行文本:用于v_cur_var IN

错误: PLS-00103:在需要以下内容之一时遇到符号")“:

代码语言:javascript
复制
      ( begin case declare end exception exit for goto if loop mod
      null pragma raise return select update while with
      <an identifier> <a double-quoted delimited-identifier>
      <a bind variable> << continue close current delete fetch lock
      insert open rollback savepoint set sql execute commit forall
      merge pipe purge

行: 210文本:)

任何帮助都将非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2014-03-11 19:56:58

好吧,你有一大堆语法错误。你开始了三个循环,但是没有一个“结束循环”。

我能得到的最接近没有语法错误的东西是:

开始打开v_sql的c_tab_var;

循环将c_tab_var提取到v_cur_inv_var中;

当c_tab_var%NOTFOUND时退出;对于v_cur_bde IN ( SELECT DISTINCT BDE.col1,BDE.col2 FROM选项卡BDE ORDER BY BDE.col1,BDE.col2,BDE.col3)循环IF v_cur_bde.col1 = v_cur_inv_var.col1和v_cur_bde.col2 = v_cur_inv_var.col2 THEN FOR v_cur_var IN (SELECT 1 FROM DUAL) --为该循环添加select语句NULL;--做一些事情结束循环;否则为NULL;--做其他事情结束如果;结束循环;结束循环;结束;

但是,如果不了解上下文,就不可能正确回答这个问题

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

https://stackoverflow.com/questions/22290226

复制
相关文章

相似问题

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