Как объявлять и использовать переменные в 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', когда на самом деле я просто хочу, чтобы записи печатались на экране, а не сохранялись в другой таблице....

РЕШЕНО:

Благодаря @Allan, я у меня это работает достаточно хорошо. Oracle SQL Developer, по-видимому, запоминает значения параметров, которые вы ему предоставляете. PL/SQL Developer, однако, не хочет иметь с этим ничего общего....

enter image description here

Если вы «Запускаете как сценарий», он будет придерживаться ваших значений по умолчанию, но будет возвращать результаты только в виде текста ASCI, а не в виде сетки/. электронная таблица

enter image description here

24
задан Tom Halladay 6 June 2012 в 14:58
поделиться