sql >> Base de Datos >  >> RDS >> Oracle

Declaración de una variable temporal en la base de datos Oracle

Si quiere hacer esto en SQL*Plus sin usar PL/SQL, puede usar variables de sustitución :

column studentname new_value l_studentname
select studentname from sometable where somecondition = 1;

column teachername new_value l_teachername
select teachername from sometable2 where somecondition >2;

select '&l_studentname', '&l_teachername,' other columns
from sometable where somecondition;

El new_value cláusula en la column La directiva asigna automáticamente el valor de cualquier siguiente selección a una variable local, que he añadido con l_ pero puedes llamar a cualquier cosa. Luego hace referencia a esa variable local en consultas futuras con & sintaxis de sustitución de variables.

Puede usarlos prácticamente en cualquier lugar donde normalmente tendría un valor. p.ej. en el where cláusula. Tenga en cuenta que los valores de texto deben estar entre comillas, por lo tanto, '&l_studentname'; sin las comillas el valor se interpretaría como un nombre de columna en este caso, lo que no funcionaría.