sql >> Databasteknik >  >> RDS >> Oracle

Deklarera en temporär variabel i Oracle Database

Om du vill göra detta i SQL*Plus utan att använda PL/SQL kan du använda ersättningsvariabler :

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;

new_value klausul i column direktivet tilldelar automatiskt värdet från alla följande val till en lokal variabel, som jag har lagt till l_ men du kan ringa vad som helst. Du refererar sedan till den lokala variabeln i framtida frågor med & variabel ersättningssyntax.

Du kan använda dem i stort sett var som helst där du normalt skulle ha ett värde. t.ex. i where klausul. Observera att textvärden måste omges av citattecken, därav '&l_studentname'; utan citattecken värdet skulle tolkas som ett kolumnnamn i det här fallet, vilket inte skulle fungera.



  1. Använd sammansatt primärnyckel som främmande nyckel

  2. Är min förståelse av storleken Unicorn, Sidekiq och DB Pool korrekt?

  3. Hur gör man en snabbare fråga med störst-n-per-grupp?

  4. Uppdatera en sorteringsindexkolumn för att flytta objekt