Проблема с восстановлением значений курсора - PullRequest
0 голосов
/ 21 октября 2019

Я пытаюсь использовать курсор для следующего блока кода, но он не компилируется и выдает ошибку, говоря следующее:

PL/SQL: SQL Statement ignored
PL/SQL: ORA-00947: not enough values

Все значения таблицы trxn извлекаются, Кто-нибудь имеетсталкивался с подобной ошибкой раньше? В любом случае это можно исправить или я что-то упустил?

I am trying to use a cursor for the following block of code, but it is not compiling and giving error saying the following:

PL/SQL: SQL Statement ignored
PL/SQL: ORA-00947: not enough values

Все значения таблицы trxn выбираются. Кто-нибудь сталкивался с подобной ошибкой раньше? В любом случае это можно исправить или я что-то упустил?

cursor bulk_select is 
with trxn as (
    select --+ materialize
        -- Wire info
        wt.id
        ,wt.fl
        ,wt.abc
        ,wt.xyz
    from
        wt_temp_t wt
    where
        <condition>
)
select  a
        ,b
        ,c

        from
        (
            select
                w.aa
                ,w.bb
                ,w.cc
                trxn w
            where
                <condition>
)included_trxn
 -- Left joins in case the acct is null or external
                        left outer join table
                        acct a_cp,
                        cust c_cp
    where
        <condition>
    type tab_bulk_select is table of bulk_select%rowtype;
    cur_bulk_select tab_bulk_select;

BEGIN
EXECUTE IMMEDIATE 'truncate table AML_CAMBRS6_HUB_SPOKE_TMP';
commit;

open bulk_select;
LOOP
fetch bulk_select bulk collect into cur_bulk_select limit 50000;

FORALL i IN 1..cur_bulk_select.COUNT

insert /*+ append */ into AML_CAMBRS6_HUB_SPOKE_TMP (a,b,c)
values cur_bulk_select(i);

commit;
EXIT When bulk_select%NOTFOUND;
END LOOP;
CLOSE bulk_select;

1 Ответ

0 голосов
/ 21 октября 2019

Это потому, что в trxn вы выбираете только 2 значения wt.fo_trxn_seq_id ,wt.pass_thru_fl.

Но в select предложении select w.aa ,w.bb, w.cc trxn w where <condition> вы используете aa, bb, cc, а также пропускаете from в выражении.

...