Pregunta

Tengo una secuencia de comandos SQL que está siendo ejecutado en SAPO. Actualmente, tengo que presenta con apenas declaración tras declaración, de esta manera:

select such-and-such from somewhere;

delete other-thing from somewhere-else;

Y así sucesivamente. Algunas de las cláusulas donde terminan siendo repetitivo porque tengo consultas internas complejas para obtener identificaciones particulares para operar. Me gustaría capturar la ID en el comienzo de la secuencia de comandos en una variable, y luego usar esa variable en la posterior, donde cláusulas. Así que algo como esto:

variable MY_ID = select the-ID from somewhere;

select such-and-such from somewhere where ID = @MY_ID;

Obviamente, estoy haciendo hasta que la sintaxis, pero eso es lo que estoy buscando. Pero no estoy seguro si eso es posible en un guión SAPO. Sé que puedo convertir todo el asunto a un bloque PL / SQL, pero estoy tratando de evitar tener que hacer eso por varias razones.

Cualquier forma de hacer esto utilizando SAPO sin convertirlo en un bloque PL / SQL?

¿Fue útil?

Solución

Creo que esto va a lograr lo que quiere. Se puede declarar una variable de vinculación, insertar un valor en ella, y luego usarlo en las declaraciones de futuro.

variable l_var varchar2(1);

begin
  select dummy
    into :l_var
    from dual;
end;

select *
  from dual
 where dummy = :l_var;

Otros consejos

Yo uso las variables de SQL * Plus de sustitución. Ellos son apoyados por SAPO. Puede ejecutar el código pulsando F5.

COLUMN VAR NEW_VALUE VAR_VALUE

SELECT 'SOMETHING' VAR FROM DUAL;  --this sets 'VAR_VALUE' = 'SOMETHING'

SELECT '&VAR_VALUE' FROM DUAL;  --this uses the value set by the previous stmt.

utilizo ya no activamente TOAD, pero debe haber algún mecanismo para establecer valores para los parámetros de vinculación es decir select such-and-such from somewhere where ID = :myid; de tal manera que cada vez que se produce SAPO suministra el mismo valor para ese parámetro.

Como alternativa, puede crear un valor de contexto de sesión o PL / SQL variable de paquete (nota: no es lo mismo que volver a escribir todo el código para utilizar PL / SQL). Ver esta pregunta

La función de "campos calculados" en SAPO es en realidad muy poderosa si se utiliza de la manera correcta. No es nada más que un editor de secuencia de comandos "token" que se adhiere a la propia consulta. Es sólo está disponible a través del Editor de Diseño de consulta, y no desde el editor nativo, lo que le permite escribir directamente hacia arriba SQL.

Como una pista, la próxima vez que se crea una consulta Diseñado en SAPO y la necesidad de crear complejas en las que o sub-consultas, pruebe la función de "campos calculados" y utilice la opción FORMAS adjuntar básicamente sus condiciones a una columna o consulta dada . Usted se sorprenderá de lo poderoso que es. Y ayuda a mantener su consulta SQL en un bonito formato legible.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top