在pl / sql中查询

时间:2013-01-15 16:00:43

标签: sql oracle plsql

我试图在pl / sql中编写查询 我知道它应该按此顺序

DECLARE 。 。 开始 。 。 结束 。 RUN;

我这样做但是在结束后我遇到了一个奇怪的问题。 oracle标记点下的红线和单词“end”的结尾,当我把鼠标放在线上时它说 “语法错误,预期: 识别码 名称 name_wo_function_call“

这是我的代码

DECLARE
          temp_m model.model%TYPE;
          temp_mn model.modelnum%TYPE;
          temp_cap model.capacity%TYPE;
          temp_we model.weight%TYPE;
          CURSOR temp IS SELECT *  FROM model WHERE (weight>40) FOR UPDATE;
          CURSOR temp2 IS  SELECT model_num,COUNT(id)
                                            FROM TECH_MO
                                            GROUP BY model_num
                                            HAVING COUNT(id)>1;
BEGIN
          OPEN temp;
          OPEN temp2;
          LOOP
              FETCH temp INTO temp_m,temp_mn,temp_cap,temp_we;
              dbms_output.put_line(temp_m);
               EXIT WHEN temp%notfound;
          END LOOP;
          CLOSE temp;
          CLOSE temp2;
END;
.
RUN;

谢谢你的回答。

1 个答案:

答案 0 :(得分:1)

不知道你从哪里获得.RUN,因为它不是语法的一部分。在脚本中执行此操作的方法就是这样。

DECLARE
  ...
BEGIN
  ...
EXCEPTION
  ...
END;
/

(例外部分是可选的)

您没有看到我怀疑输出的问题是因为您没有设置服务器输出。你可以在SQL * Plus中这样做。

SET SERVEROUTPUT ON