-1

pl/sql でクエリを作成しようとしていますが、この順序である必要があることはわかっています

宣言する 。. 始める 。. 終わり 。走る;

私はこれを行いますが、終了後に奇妙な問題が発生します。オラクルは、ドットの下の赤い線と「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;

回答ありがとうございます。

4

1 に答える 1

1

.RUN は構文の一部ではないため、どこから取得したのかわかりません。スクリプトでこれを行う方法はそのようなものです。

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

(例外部分は任意)

私が疑う出力が表示されないという問題は、サーバー出力をオンに設定していないためです。これは SQL*Plus でも同じように行います。

SET SERVEROUTPUT ON
于 2013-01-15T16:14:49.340 に答える