Объявление константы в PLSQL - PullRequest
0 голосов
/ 27 декабря 2018

У меня проблемы с объявлением константы и использованием ее в простом запросе.

Я пробовал много вариантов объявления константы в PLSQL, которые я видел в Интернете, но продолжаю получать ошибки.Что я делаю неправильно?

DECLARE 
    cobdate CONSTANT NUMBER(10) := 420181109;
BEGIN
    SELECT *
    FROM   THIS_TABLE dex
    WHERE  dex.close_of_business_key = &cobdate
    AND    dex.scenario_type_id = 'xxxx'
    AND    dex.s_counterparty_id = 'xxxx'
    AND    dex.run_type = 'xxxx'
    AND    dex.s_credit_line_type_id = 'xxxx'
END;

1 Ответ

0 голосов
/ 27 декабря 2018

Вы не должны использовать & в качестве префикса к своему константному имени.

DECLARE 
   cobdate CONSTANT NUMBER(10) := 420181109;
   v_this_table this_table%rowtype;
BEGIN
   SELECT * into v_this_table
     FROM THIS_TABLE dex
    WHERE dex.close_of_business_key = cobdate
      AND dex.scenario_type_id = 'xxxx'
      AND dex.s_counterparty_id = 'xxxx'
      AND dex.run_type = 'xxxx'
      AND dex.s_credit_line_type_id = 'xxxx'
END;

Кроме того, в PL / SQL вам нужно указать, где вы будете хранить значения набора результатов (в моем примере v_this_table).

Если ваш запрос возвращает более одной строки, вам потребуется курсор для его итерации.

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