Переменные в сценариях TOAD

у меня есть 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;

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

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

4 ответов


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

variable l_var varchar2(1);

begin
  select dummy
    into :l_var
    from dual;
end;

select *
  from dual
 where dummy = :l_var;

Я использую переменные подстановки SQL * PLUS. Их поддерживает жаба. Этот код можно выполнить, нажав клавишу 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.

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

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


функция "вычисляемые поля" в TOAD на самом деле является довольно мощным, если используется в правильном направлении. Это не что иное, как редактор сценариев "токенов", который присоединяется к самому запросу. Он доступен только через редактор дизайна запросов, а не из собственного редактора, который позволяет писать прямо SQL.

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