Переменные в скриптах TOAD - PullRequest
6 голосов
/ 22 декабря 2009

У меня есть сценарий SQL, который выполняется в TOAD. В настоящее время у меня есть это только с заявлением за заявлением, таким образом:

select such-and-such from somewhere;

delete other-thing from somewhere-else;

И так далее. Некоторые из предложений where оказываются повторяющимися, потому что у меня есть сложные внутренние запросы, чтобы получить определенные идентификаторы для работы. Я хотел бы захватить идентификатор в начале скрипта в переменной, а затем использовать эту переменную в последующих предложениях where. Так что-то вроде этого:

variable MY_ID = select the-ID from somewhere;

select such-and-such from somewhere where ID = @MY_ID;

Очевидно, я составляю этот синтаксис, но это то, что я ищу. Но я не уверен, возможно ли это в сценарии TOAD. Я знаю, что могу преобразовать все это в блок PL / SQL, но я пытаюсь избежать необходимости делать это по разным причинам.

Есть ли способ сделать это с помощью TOAD без преобразования в блок PL / SQL?

Ответы [ 4 ]

9 голосов
/ 22 декабря 2009

Я думаю, что это достигнет того, что вы хотите. Вы можете объявить переменную связывания, вставить в нее значение, а затем использовать его в будущих инструкциях.

variable l_var varchar2(1);

begin
  select dummy
    into :l_var
    from dual;
end;

select *
  from dual
 where dummy = :l_var;
1 голос
/ 20 января 2017

Я использую переменные замещения SQL * PLUS. Они поддерживаются TOAD. Вы можете выполнить этот код, нажав F5.

COLUMN VAR NEW_VALUE VAR_VALUE

SELECT 'SOMETHING' VAR FROM DUAL;  --this sets 'VAR_VALUE' = 'SOMETHING'

SELECT '&VAR_VALUE' FROM DUAL;  --this uses the value set by the previous stmt.
0 голосов
/ 02 апреля 2015

Функция «Вычисляемые поля» в TOAD на самом деле довольно мощная, если ее использовать правильно. Это не что иное, как редактор токенов, который присоединяется к самому Query. Он доступен только через редактор Query Design Editor, но не из собственного редактора, который позволяет писать прямо на SQL.

В качестве подсказки, в следующий раз, когда вы создадите запрос, разработанный в TOAD, и вам необходимо создать сложные WHERE или подзапросы, попробуйте функцию «Вычисляемые поля» и используйте опцию FORMS, чтобы в основном привязать ваши условия к данному столбцу или запросу , Вы будете удивлены, насколько это мощно. И это помогает поддерживать ваш SQL-запрос в удобном для чтения формате.

0 голосов
/ 22 декабря 2009

Я больше не использую TOAD, но должен быть какой-то механизм для установки значений для параметров связывания, т. Е. select such-and-such from somewhere where ID = :myid;, чтобы каждый раз, когда это происходило, TOAD предоставлял одно и то же значение для этого параметра.

В качестве альтернативы, вы можете создать значение контекста сеанса или переменную пакета PL / SQL (примечание: не то же самое, что переписать весь код для использования PL / SQL). Смотри этот вопрос

...