0

2 つの選択クエリがあり、両方のカーソルを開きたいですか?


v_str1:='SELECT ROWID FROM ' || p_tblname|| 'WHERE '|| p_cname||'='''||
       p_cvalue || '''';

v_str2:='SELECT COUNT ( * ) INTO v_cnt FROM ' || p_tblname|| 'WHERE '|| p_cname||' = '''||p_cvalue||'''';

.....

OPEN ref_cur_name FOR v_str1 LOOP

  IF v_cnt = 1
  THEN
     EXIT;
  ELSE

    EXECUTE IMMEDIATE 'DELETE FROM '||  p_tblname||
           'WHERE   ROWID = REC.ROWID';
  END IF;

  v_cnt := v_cnt - 1;

END LOOP;

最初のクエリは select ステートメントで、その他はカウントを に入れるだけv_cnt です。ここで、これらの両方のクエリを実行する必要があります。これらの両方のクエリを使用する方法はありますか?

OPENまた、ステートメント ieの後に構文エラーがあります。ループで。

4

1 に答える 1

0

即時実行を使用

EXECUTE IMMEDIATE 'SELECT   COUNT ( * )
 INTO   v_cnt
 FROM  '                                                                                                            ||
  p_tblname||
'WHERE  '|| p_cname||' = '''||p_cvalue||'''';
于 2013-07-31T13:45:05.897 に答える