En el servidor Sql, muchas veces cuando estoy probando el cuerpo de un procedimiento almacenado, copio el cuerpo en SSMS, DECLARO las variables en la parte superior de la página, las ajusto a algunos valores de muestra y ejecuto el cuerpo como- es.¿Cómo declaro y uso variables en PL/SQL como lo hago en T-SQL?
Por ejemplo, si mi proc es
CREATE PROC MySampleProc
@Name VARCHAR(20)
AS
SELECT @Name
Entonces mi sql prueba sería
DECLARE @Name VARCHAR(20)
SET @Name = 'Tom'
SELECT @Name
¿Cuál es el Oracle PL/SQL equivalente a esto?
Este es el más cercano que he llegado con, pero me estoy poniendo "PLS-00428: una cláusula INTO se espera en esta instrucción SELECT"
DECLARE
myname varchar2(20);
BEGIN
myname := 'Tom';
select myname from DUAL;
END;
Este es un ejemplo de lo mejor realmente estoy tratando de hacer:
DECLARE
myname varchar2(20);
BEGIN
myname := 'Tom';
SELECT *
FROM Customers
WHERE Name = myname;
END;
Pero, de nuevo, que quiere una 'en' cuando en realidad sólo quiero los registros impresos en la pantalla, no se almacenan en otra tabla ....
RESUELVE :
Gracias a @Allan, lo tengo funcionando bastante bien. Oracle SQL Developer aparentemente recuerda los valores de los parámetros que usted le proporciona. PL/SQL Developer, sin embargo, no quiere tener nada que ver con esto ....
Si "Ejecutar como escritura", que va a cumplir con sus valores por defecto, pero sólo devolverá resultados como texto ASCI , no en una cuadrícula/hoja de cálculo
Este es el que más cerca encontrado a mi respuesta, pero no muestran cómo usar la variable dentro de la lista de selección de la consulta, y eso me sigue arrojando errores. http://plsql-tutorial.com/plsql-variables.htm –
Hay dos problemas en su último fragmento de código. 1) No se necesitan dos puntos delante de la variable, ni en la tarea ni en la instrucción SELECT. 2) El resultado de la instrucción SELECT debe ir a alguna parte, p. declaras una segunda variable y escribes 'SELECT Name INTO Name2 FROM DUAL'. – Codo
¿Qué pasa si no quiero que los resultados lleguen a algún lado, solo quiero que aparezcan en una cuadrícula en PL/SQL Developer? –