sql >> Database teknologi >  >> RDS >> Oracle

Oracle SQL:variabler, der bruges i stedet for tabelnavne

  1. Du skal have et mellemrum mellem tabelnavnet og den efterfølgende WHERE klausul
  2. INTO skal være en del af EXECUTE IMMEDIATE , ikke en del af den dynamiske SQL-sætning.
  3. Den dynamiske SQL-sætning bør ikke have et afsluttende semikolon
  4. Koden UDFØR STRAKS sætning skal slutte med semikolon

Når man sætter dem sammen, burde sådan noget fungere

declare 
  VR_TABLE VARCHAR2(256);
  VR_UPDATE VARCHAR2(256);
begin
  VR_TABLE :='SYSTEM_STATUS';
  EXECUTE IMMEDIATE 'select UPDATE_VERSION from ' || VR_TABLE || ' where rownum < 2'
               INTO VR_UPDATE;
end;

Selvfølgelig, da du ikke gør noget med VR_UPDATE , vil intet blive vist, når denne anonyme blokering udføres.



  1. COUNT(*) med og uden GROUP BY, ingen matchende rækker

  2. SQL vælger kun rækker med maks. værdi på en kolonne

  3. Java:Io-undtagelse:Netværksadapteren kunne ikke oprette forbindelsen

  4. Hvordan indstilles sql_mode i my.cnf i MySQL 8?