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

Funkce vs procedury v Oracle

Rozdíl je - funkce musí ve výchozí definici vracet hodnotu (jakéhokoli typu), zatímco v případě procedury musíte použít parametry jako OUT nebo IN OUT parametry k získání výsledků. Můžete použít funkci v normálním SQL kde jako nemůžete použít proceduru v SQL prohlášení.

Některé rozdíly mezi funkcemi a procedurami

  1. Funkce vždy vrátí hodnotu pomocí příkazu return, zatímco procedura může vrátit jednu nebo více hodnot prostřednictvím parametrů nebo se nemusí vrátit vůbec. Ačkoli OUT parametry lze i nadále používat ve funkcích, nejsou vhodné ani nejsou případy, kdy by to bylo potřeba. Pomocí OUT omezuje použití funkce v příkazu SQL.

  2. Funkce lze použít v typických příkazech SQL, jako je SELECT , INSERT , UPDATE , DELETE , MERGE , zatímco procedury nemohou.

  3. Funkce se běžně používají pro výpočty, kde se běžně používají procedury pro provádění obchodní logiky.

  4. Oracle poskytuje vytvoření "Function Based Indexes" pro zlepšení výkonu následného SQL příkazu. To platí při provádění funkce na indexovaném sloupci v klauzuli where dotazu.

Více informací o funkcích vs. Postupy zde a zde.



  1. Použití Workbench pro připojení ke vzdálenému serveru MySQL přes SSH tunel

  2. Jak můžete pojmenovat tabulky datové sady, které vracíte v uloženém procesu?

  3. Zvládnutí použití stoplistů pomocí SQL Server Full-Text Search (FTS)

  4. Použití výstupních parametrů uložené procedury v C#