Присоединиться к курсору - PullRequest
0 голосов
/ 21 мая 2019

У меня есть следующий pl sql proc, я пытаюсь присоединиться к таблице на CUR

FETCH CUR INTO V_CTR_ID,V_TRXN_INTRL_REF_ID,V_TRXN_DT,V_ACCT_INTRL_ID,V_TRXN_BASE_AM;
        EXIT WHEN CUR%NOTFOUND;
        --dbms_output.put_line('Enter CUR');
        OPEN CUR1 FOR  SELECT distinct CTR.OCCUPATION,CTR.TAX_ID
                         FROM
                            BR_CTR_TRANS BR join CUR on
                            CUR.V_TRXN_INTRL_REF_ID=BR.TRANS_REF_ID AND CUR.V_ACCT_INTRL_ID=BR.ACCT_IDENTIFIER AND CUR.V_TRXN_BASE_AM=BR.TRANS_AMT_BASE AND CUR.V_TRXN_DT=BR.TRANS_DT 
                            join CTR_XML_BR_COND CTR
                            on
                            BR.BR_CTR_SUM_REF_ID=CTR.CTR_ID;

Ошибка, которую я получаю, состоит в том, что CUR рассматривается как таблица, и он дает таблицу или представление, не существует. Может кто-нибудь помочь?

1 Ответ

0 голосов
/ 22 мая 2019

Вы не можете присоединиться к курсору, но вы можете использовать выбранные значения в последующем операторе SQL. В этом случае удалите 'join cur' и переместите условия предложения on в предложение where.

fetch cur into v_ctr_id,v_trxn_intrl_ref_id,v_trxn_dt,v_acct_intrl_id,v_trxn_base_am;
        exit when cur%notfound;
        --dbms_output.put_line('Enter CUR');
        open cur1 for  select distinct ctr.occupation,ctr.tax_id
                         from br_ctr_trans br 
                         join ctr_xml_br_cond ctr onbr.br_ctr_sum_ref_id=ctr.ctr_id
                        where 1=1
                          and cur.v_trxn_intrl_ref_id=br.trans_ref_id 
                          and cur.v_acct_intrl_id=br.acct_identifier 
                          and cur.v_trxn_base_am=br.trans_amt_base 
                          and cur.v_trxn_dt=br.trans_dt; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...