A continuación se muestra un ejemplo del uso de variables en SQL Server 2000.
DECLARE @EmpIDVar INT
SET @EmpIDVar = 1234
SELECT *
FROM Employees
WHERE EmployeeID = @EmpIDVar
Quiero hacer exactamente lo mismo en Oracle usando SQL Developer sin complejidad adicional. Parece una cosa muy simple de hacer, pero no puedo encontrar una solución simple. ¿Cómo puedo hacerlo?
Respuestas:
Estoy usando SQL-Developer en la versión 3.2. Las otras cosas no me funcionaron, pero esto sí:
También es la forma más hábil presentada aquí, hasta ahora.
(Si omite la parte "definir", se le pedirá ese valor)
fuente
Hay dos tipos de variables en SQL-plus: sustitución y vinculación.
Esto es sustitución (las variables de sustitución pueden reemplazar las opciones de comando SQL * Plus u otro texto codificado):
Esto es bind (las variables de enlace almacenan valores de datos para declaraciones SQL y PL / SQL ejecutadas en el RDBMS; pueden contener valores únicos o conjuntos de resultados completos):
SQL Developer admite variables de sustitución, pero cuando ejecuta una consulta con
:var
sintaxis de enlace , se le solicita el enlace (en un cuadro de diálogo).Referencia:
ACTUALIZAR las variables de sustitución son un poco complicadas de usar, mira:
fuente
var x
yexec :x
, sin aviso.En SQL * Plus, puede hacer algo muy similar
En SQL Developer, si ejecuta una declaración que tiene cualquier número de variables de vinculación (con dos puntos como prefijo), se le pedirá que ingrese valores. Como señala Alex, también puede hacer algo similar usando la función "Ejecutar script" (F5) con la sintaxis EXEC alternativa que Alex sugiere.
fuente
select...into
(ORA-01006), por lo que debería hacerlo en suexec :v_emp_id := 1234;
lugar.Ok, sé que esto es un truco, pero esta es una forma de usar una variable en una consulta simple, no un script:
Puedes ejecutarlo en todas partes.
fuente
Respuesta simple NO.
Sin embargo, puede lograr algo similar ejecutando la siguiente versión usando variables de enlace:
Una vez que ejecute la consulta anterior en SQL Developer, se le pedirá que ingrese un valor para la variable de vinculación EmployeeID.
fuente
Puede leer en otra parte sobre las variables de sustitución; son bastante útiles en SQL Developer. Pero tengo problemas al intentar usar variables de enlace en SQL Developer. Esto es lo que hago:
SET SERVEROUTPUT ON
hace que el texto se pueda imprimir en la consola de salida del script.Creo que lo que estamos haciendo aquí se llama oficialmente PL / SQL. Hemos dejado la tierra pura de SQL y estamos usando un motor diferente en Oracle. ¿Ves lo de
SELECT
arriba? En PL / SQL siempre tiene queSELECT ... INTO
ser variable o un refcursor. No puede simplementeSELECT
devolver un conjunto de resultados en PL / SQL.fuente
Creo que la forma más fácil en tu caso es:
Para los valores de la cadena será como:
fuente
Utilice la siguiente consulta:
fuente
Pruebe esto, funcionará, es mejor crear un procedimiento, si el procedimiento no es posible, puede usar este script.
fuente
En el desarrollador de sql, defina las propiedades por defecto "ON". Si está "APAGADO" en cualquier caso, siga los pasos a continuación.
set define on; define batchNo='123'; update TABLE_NAME SET IND1 = 'Y', IND2 = 'Y' WHERE BATCH_NO = '&batchNo';
fuente