Как объявить и использовать переменные в PL / SQL, как в T-SQL?
На Sql Server часто, когда я тестирую тело хранимой процедуры, я копирую тело в SSMS, ОБЪЯВЛЯЮ переменные в верхней части страницы, устанавливаю для них некоторые примеры значений и выполняю тело как есть. .
Например, если мой процесс
CREATE PROC MySampleProc
@Name VARCHAR(20)
AS
SELECT @Name
Тогда мой тест sql будет
DECLARE @Name VARCHAR(20)
SET @Name = 'Tom'
SELECT @Name
Что такое Oracle PL / SQL эквивалентно этому?
Это самое близкое, что я придумал, но я получаю «PLS-00428: в этом операторе SELECT ожидается предложение INTO»
DECLARE
myname varchar2(20);
BEGIN
myname := 'Tom';
select myname from DUAL;
END;
Это лучший пример того, что я действительно пытаюсь сделать:
DECLARE
myname varchar2(20);
BEGIN
myname := 'Tom';
SELECT *
FROM Customers
WHERE Name = myname;
END;
Но опять же, он хочет «INTO», когда на самом деле я просто хочу, чтобы записи печатались на экране, а не сохранялись в другой таблице ....
RESOLVED:
Спасибо @Allan, у меня все работает достаточно хорошо. Oracle SQL Developer, очевидно, запоминает значения параметров, которые вы ему предоставляете. Однако PL / SQL Developer не хочет иметь с этим ничего общего.
Если вы «запускаете как скрипт», он будет соблюдать ваши значения по умолчанию, но он будет возвращать результаты только в виде текста ASCI, а не в виде таблицы или таблицы