Ссылка на таблицу, представление или последовательность 'LN_GRAPH_PERC.DATE_RED' не разрешена в этом контексте - PullRequest
0 голосов
/ 08 ноября 2018

Не могу поменять ln_graph_debt.date_red

CREATE OR REPLACE PROCEDURE GetContactFormalNames
AS
   aki     DATE := TRUNC (SYSDATE - 3);
   aki_1   DATE := TRUNC (ln_graph_debt.date_red);
BEGIN
   IF (aki_1 = aki)
   THEN
      DECLARE account_name_1 AS INT*/

      INSERT INTO TEL_LOAN_GRAPH (loan_id,
                                  TOTAL_COUNTED,
                                  DATE_RED,
                                  OBLIGATE_NUMBER,
                                  ACCOUNT_CODE,
                                  ACCOUNT_NAME)
         SELECT d.loan_id,
                CAST (d.summ_red AS NUMBER) + CAST (p.summ_red AS NUMBER)
                   AS Total_Counted,
                d.date_red,
                d.obligate_number,
                l.account_code,
                l.account_name
           FROM ln_graph_debt d, ln_graph_perc p, ln_account l
          WHERE     d.loan_id = p.loan_id
                AND d.loan_id = l.loan_id
                AND p.date_red = d.date_red;
   END IF;
END GetContactFormalNames;

1 Ответ

0 голосов
/ 08 ноября 2018

Это неправильно:

aki_1   DATE := TRUNC (ln_graph_debt.date_red);

Вы не можете ссылаться на таблицу таким образом; вам нужно будет SELECT в переменную или написать функцию, которая будет возвращать значение.

select d.date_red
  into aki_1
  from ln_graph_debt d
  where ...  

WHERE предложение должно содержать условие, чтобы SELECT возвращало только одно значение; в противном случае вы получите TOO-MANY-ROWS (или, возможно, NO-DATA-FOUND).


Также есть очевидная ошибка, лишняя DECLARE внутри IF. Вы, вероятно, хотели это прокомментировать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...