0

私は2つのオラクルクエリを持っています。そして、これらのクエリを 1 つにマージしたいと考えています。最初のクエリでは、結果として常に 1 つのレコードが返されます。

1)。

select distinct partition_name 
from all_tab_partitions 
where partition_name like 'P_20130110%';

2)。

select feed_id,count(*) 
from str_bill_item partition(result of first query) 
group by feed_id 
order by 1;

実際には、データが格納されるパーティションを持つ str_bill_item テーブル。およびそのパーティションの名前は all_tab_partition テーブルに格納されます。そのため、all_tab_partition から特定のパーティション名を取得する必要があり、そのパーティション フォーム str_billl_item テーブルでデータを見つけました。

それについて私を助けてください?

ありがとう。

4

1 に答える 1

0

問題は、partition() でクエリを使用できないことです。

このようなものはどうですか:

DECLARE
  rPartName VARCHAR2(100);
BEGIN

  select distinct partition_name 
  INTO rPartName
  from all_tab_partitions 
  where partition_name like 'P_20130110%';

EXECUTE IMMEDIATE 'select feed_id,count(*)  from str_bill_item partition('|| rPartName ||') group by feed_id order by 1;';

end;

あなたが試みることができるのは:

実行せずに選択を実行して使用する

DBMS_OUTPUT.PUT_LINE('select feed_id,count(*)  from str_bill_item partition('|| rPartName ||') group by feed_id order by 1;');

SQLクエリのどこかにある同じエラーが発生した場合は、出力をselectとして実行します

実行しない場合は、問題があります。

于 2013-01-10T12:31:02.450 に答える