2017-06-13 6 views
0

私は数を選択してから変数v_voyage1_orders20に次のように挿入しようとしていますが、これが可能で正しい構文を知っていますか?連結文/ into文への追加

SELECT COUNT(DISTINCT KLIENTS_ORDER_ID) 
INTO CONCAT(v_voyage || v_lcntr || _orders20) 
+0

コンカットで変数名を作成することはできません。ハードコードを定義するか、コレクションを使用する必要があります。それ以外は、サンプルデータとあなたが試したクエリを提供します。 – Debabrata

+0

こんにちはDebabrata、私はv_voyage1_orders20、v_voyage2_orders20などを得るために1-6からループしたいと思います。これを行うための最善の方法は何ですか? –

+0

サンプルデータと期待される出力があれば、状況をよりよく理解するのに役立ちます。 – Debabrata

答えて

0

コメントに記載されているとおり、私たちは本当に適切な答えのためにいくつかの情報/文脈が必要です。

しかし、その静かな朝、私は推測しました。

これは、各klientの別々の注文数を配列に集計して、各klient_noを取得します。

DECLARE 
    TYPE klient_orders_rt IS RECORD 
    (klient_no klient_order.klient_no%TYPE, 
    klient_ord_count NUMBER); 
    TYPE order_count_t IS TABLE OF klient_orders_rt; 
    l_order_count order_count_t; 
BEGIN 
    SELECT klient_no, COUNT(DISTINCT klints_order_id) 
    BULK COLLECT INTO l_order_count 
    FROM klient_order 
    GROUP BY klient_no; 

    FOR i IN 1..l_order_count.COUNT LOOP 
    DBMS_OUTPUT.PUT_LINE('RECORD '||TO_CHAR(i)||' : '||l_order_count(i).klient_no||' Num orders: '||TO_CHAR(l_order_count(i).klient_ord_count)); 
    END LOOP; 
END; 

これは、後で何かに近いものを与えるかもしれませんが、技術は確かに分かっています。