In Sql Server, spesso quando sto testando il corpo di una stored procedure, copio il corpo in SSMS, DECLARE le variabili nella parte superiore della pagina, impostale su alcuni valori di esempio ed eseguo il corpo as- è.Come dichiarare e utilizzare le variabili in PL/SQL come faccio in T-SQL?
Per esempio, se il mio proc è
CREATE PROC MySampleProc
@Name VARCHAR(20)
AS
SELECT @Name
Poi la mia prova sql sarebbe
DECLARE @Name VARCHAR(20)
SET @Name = 'Tom'
SELECT @Name
Qual è l'Oracle PL/SQL equivalente a questo?
Questo è il più vicino che mi è venuta in mente, ma mi sto "PLS-00428: una clausola INTO è previsto in questa SELECT"
DECLARE
myname varchar2(20);
BEGIN
myname := 'Tom';
select myname from DUAL;
END;
Questo è un esempio migliore di quello sto davvero cercando di fare:
DECLARE
myname varchar2(20);
BEGIN
myname := 'Tom';
SELECT *
FROM Customers
WHERE Name = myname;
END;
Ma ancora una volta, vuole un 'in', quando in realtà voglio solo i record stampati sullo schermo, non memorizzato in un altro tavolo ....
risolto :
Grazie a @ Allan, ho funzionato abbastanza bene. Oracle SQL Developer apparentemente ricorda i valori dei parametri con i quali viene fornito. PL/SQL Developer, però, non vuole avere niente a che fare con questo ....
Se "Esegui come Script", sarà rispettare le impostazioni predefinite, ma restituisce solo i risultati come testo ASCI , non in una griglia/foglio
Questa è l'io più vicino trovato alla mia risposta, ma non mostrano come utilizzare la variabile all'interno dell'elenco di selezione della query e che continua a generare errori. http://plsql-tutorial.com/plsql-variables.htm –
Ci sono due problemi nell'ultima parte di codice. 1) Non sono necessari i due punti davanti alla variabile, né nell'assegnazione né nell'istruzione SELECT. 2) Il risultato dell'istruzione SELECT deve andare da qualche parte, ad es. dichiari una seconda variabile e scrivi 'SELECT Name INTO Name2 FROM DUAL'. – Codo
Cosa succede se non voglio che i risultati vadano da qualche parte, voglio solo che vengano visualizzati in una griglia in PL/SQL Developer? –