В 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', когда на самом деле я просто хочу, чтобы записи печатались на экране, а не сохранялись в другой таблице....
РЕШЕНО:
Благодаря @Allan, я у меня это работает достаточно хорошо. Oracle SQL Developer, по-видимому, запоминает значения параметров, которые вы ему предоставляете. PL/SQL Developer, однако, не хочет иметь с этим ничего общего....
Если вы «Запускаете как сценарий», он будет придерживаться ваших значений по умолчанию, но будет возвращать результаты только в виде текста ASCI, а не в виде сетки/. электронная таблица