sql >> Database >  >> RDS >> Oracle

Oracle SQL:variabelen gebruikt in plaats van tabelnamen

  1. U moet een spatie hebben tussen de tabelnaam en de daaropvolgende WHERE clausule
  2. De INTO moet deel uitmaken van de EXECUTE IMMEDIATE , geen onderdeel van de dynamische SQL-instructie.
  3. De dynamische SQL-instructie mag geen puntkomma achteraan hebben
  4. De EXECUTE IMMEDIATE statement moet eindigen met een puntkomma

Als je die samenvoegt, zou zoiets moeten werken

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;

Natuurlijk, aangezien je niets doet met VR_UPDATE , wordt er niets weergegeven wanneer dit anonieme blok wordt uitgevoerd.



  1. Filter de rijen met alleen nummergegevens in een kolom SQL

  2. Mysql-functie om niet-null-waarden te transformeren

  3. Hoe kan ik een trigger activeren aan het einde van een reeks updates?

  4. kan stream niet openen:geen bestand of map in