sql >> Databáze >  >> RDS >> Oracle

Oracle SQL:proměnné používané místo názvů tabulek

  1. Mezi názvem tabulky a následujícím WHERE musíte mít mezeru doložka
  2. INTO musí být součástí EXECUTE IMMEDIATE , není součástí dynamického příkazu SQL.
  3. Dynamický příkaz SQL by neměl mít středník na konci
  4. EXECUTE IMMEDIATE příkaz by měl končit středníkem

Když je dáme dohromady, něco takového by mělo fungovat

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;

Samozřejmě, protože s VR_UPDATE nic neděláte , po provedení tohoto anonymního bloku se nic nezobrazí.



  1. Nedostatečná oprávnění PL/SQL v rámci dotazu jsou možná ručně

  2. Jak bych formuloval vkládací dotaz do jiné databáze pomocí postgres_fdw?

  3. Alternativy k LIMIT a OFFSET pro stránkování v Oracle

  4. jak může ovlivnit výkon, když používám UUID jako své primární klíče v MySQL