Ниже приведен пример использования переменных в SQL Server 2000.
DECLARE @EmpIDVar INT
SET @EmpIDVar = 1234
SELECT *
FROM Employees
WHERE EmployeeID = @EmpIDVar
Я хочу сделать то же самое в Oracle с помощью SQL Developer без дополнительных сложностей. Это кажется очень простым делом, но я не могу найти простого решения. Как мне это сделать?
Ответы:
Я использую SQL-Developer версии 3.2. Другие вещи у меня не работали, но вот это:
Кроме того, это самый изящный способ, представленный здесь.
(Если вы опустите часть «определить», вам будет предложено ввести это значение)
источник
В SQL-plus есть два типа переменных: подстановка и привязка.
Это подстановка (переменные подстановки могут заменять параметры команды SQL * Plus или другой жестко заданный текст):
Это привязка (переменные привязки хранят значения данных для операторов SQL и PL / SQL, выполняемых в СУБД; они могут содержать отдельные значения или полные наборы результатов):
SQL Developer поддерживает подстановочные переменные, но когда вы выполняете запрос с
:var
синтаксисом привязки, вам будет предложено привязать (в диалоговом окне).Ссылка:
Переменные подстановки UPDATE немного сложно использовать, посмотрите:
источник
var x
иexec :x
, без подсказки.В SQL * Plus вы можете делать что-то очень похожее
В SQL Developer, если вы запустите оператор, который имеет любое количество переменных связывания (с префиксом двоеточие), вам будет предложено ввести значения. Как отмечает Алекс, вы также можете сделать нечто подобное, используя функцию «Выполнить сценарий» (F5) с альтернативным синтаксисом EXEC, который предлагает Алекс.
источник
select...into
(ORA-01006), поэтому вам нужно сделать этоexec :v_emp_id := 1234;
вместо него.Хорошо, я знаю, что это что-то вроде хака, но это способ использовать переменную в простом запросе, а не скрипт:
Вы можете запускать его везде.
источник
Простой ответ НЕТ.
Однако вы можете добиться чего-то подобного, запустив следующую версию с использованием переменных связывания:
После выполнения указанного выше запроса в SQL Developer вам будет предложено ввести значение переменной привязки EmployeeID.
источник
Вы можете прочитать в другом месте о переменных подстановки; они очень удобны в SQL Developer. Но у меня есть припадки, пытающиеся использовать переменные связывания в SQL Developer. Вот что я делаю:
SET SERVEROUTPUT ON
позволяет выводить текст на консоль вывода скрипта.Я считаю, что то, что мы здесь делаем, официально называется PL / SQL. Мы покинули страну чистого SQL и используем другой движок в Oracle. Вы видите
SELECT
выше? В PL / SQL всегда требуетсяSELECT ... INTO
либо переменная, либо рефкурсор. Вы не можете простоSELECT
и вернуть набор результатов в PL / SQL.источник
Я думаю, что самый простой способ в вашем случае:
Для строковых значений это будет примерно так:
источник
Используйте следующий запрос:
источник
Попробуйте, это сработает, лучше создать процедуру, если процедура невозможна, вы можете использовать этот сценарий.
источник
В sql-разработчике свойства по умолчанию определяют "ON". Если в любом случае он выключен, выполните следующие действия.
set define on; define batchNo='123'; update TABLE_NAME SET IND1 = 'Y', IND2 = 'Y' WHERE BATCH_NO = '&batchNo';
источник