Jak deklarować i używać zmiennych w PL / SQL, tak jak w T-SQL?
W serwerze Sql, często podczas testowania treści procedury przechowywanej, kopiuję ciało do SSMS, DECLARE zmienne na górze strony, ustawiam je na niektóre przykładowe wartości i wykonuję ciało w takiej postaci, w jakiej się znajduje.
Na przykład, jeśli mój proc
CREATE PROC MySampleProc
@Name VARCHAR(20)
AS
SELECT @Name
Wtedy mój testowy sql byłby
DECLARE @Name VARCHAR(20)
SET @Name = 'Tom'
SELECT @Name
Co to jest odpowiednik Oracle PL / SQL?
To jest najbliżej tego, co wymyśliłem, ale otrzymuję „PLS-00428: w instrukcji SELECT oczekuje się klauzuli INTO”
DECLARE
myname varchar2(20);
BEGIN
myname := 'Tom';
select myname from DUAL;
END;
To jest lepszy przykład tego, co naprawdę próbuję zrobić:
DECLARE
myname varchar2(20);
BEGIN
myname := 'Tom';
SELECT *
FROM Customers
WHERE Name = myname;
END;
Ale znowu chce „INTO”, kiedy naprawdę chcę, żeby rekordy były drukowane na ekranie, a nie przechowywane w innej tabeli ....
ZDECYDOWANY:
Dzięki @ Allan, mam to wystarczająco dobrze. Oracle SQL Developer najwyraźniej pamięta wartości parametrów, które mu dostarczasz. PL / SQL Developer nie chce jednak mieć z tym nic wspólnego ....
Jeśli „Uruchamiasz jako skrypt”, będzie on przestrzegał Twoich ustawień domyślnych, ale zwróci tylko wyniki jako tekst ASCI, a nie w siatce / arkuszu kalkulacyjnym