name

jméno (volitelně schématu-kvalifikovaný) postup vytvořit.

argmode

režim argument: IN INOUT nebo VARIADIC. Při vynechání je výchozí hodnota IN. (OUT argumenty nejsou v současné době podporovány pro postupy. Místo toho použijte INOUT.)

argname

název argumentu.,

argtype

datové typy argumentů postupu (případně způsobilé pro schéma), pokud existují. Typy argumentů mohou být základní, kompozitní nebo typy domén nebo mohou odkazovat na typ sloupce tabulky.

V závislosti na implementačním jazyce může být také povoleno zadat „pseudo-typy“, jako je cstring. Pseudo-typy naznačují, že skutečný typ argumentu je buď neúplně specifikován, nebo mimo sadu běžných datových typů SQL.

typ sloupce je odkazován zápisem table_name.,column_name%Typ. Použití této funkce může někdy pomoci provést postup nezávislý na změnách definice tabulky.

default_expr

výraz, který má být použit jako výchozí hodnota, pokud parametr není zadán. Výraz musí být donucen k typu argumentu parametru. Všechny vstupní parametry následující po parametru s výchozí hodnotou musí mít také výchozí hodnoty.

lang_name

název jazyka, ve kterém je postup implementován., To může být sql c internal, nebo název uživatelem definované procesní jazyk, např. plpgsql. Uzavření názvu v jednotlivých uvozovkách je zastaralé a vyžaduje odpovídající případ.

TRANSFORM { FOR TYPE type_name}}

seznamy, které transformují hovor na postup, by měly platit. Transformuje převod mezi typy SQL a datovými typy specifickými pro jazyk; viz vytvořit transformaci. Implementace procesního jazyka mají obvykle pevně zakódované znalosti o vestavěných typech, takže ty zde nemusí být uvedeny., Pokud implementace procesního jazyka neví, jak zacházet s typem a není dodávána žádná transformace, vrátí se k výchozímu chování pro konverzi datových typů, ale to závisí na implementaci.

SECURITY INVOKER
SECURITY DEFINER

SECURITY INVOKER označuje, že tento postup je třeba provádět s právy uživatele, který jej volá. To je výchozí. SECURITY DEFINER určuje, že postup má být proveden s oprávněními uživatele, který jej vlastní.,

Klíčové slovo EXTERNAL je povoleno pro shodu SQL,ale je volitelné, protože na rozdíl od SQL se tato funkce vztahuje na všechny postupy nejen externí.

SECURITY DEFINER postup nelze provést transakce řídicí příkazy (například COMMIT ROLLBACK, v závislosti na jazyku).,

configuration_parameter
value

SET klauzule způsobí, že zadaná konfigurační parametr musí být nastaven na zadanou hodnotu v případě, že postup je zapsána, a pak obnoven na předchozí hodnotu, když se postup ukončí. SET FROM CURRENT uloží hodnotu parametru, který je aktuální, když CREATE PROCEDURE je proveden jako hodnotu, která má být použita při řízení je zadané.,

Pokud SET doložka je připojena k řízení, pak účinky SET LOCAL příkaz proveden uvnitř postup pro stejné proměnné jsou omezeny na postup: konfigurace parametr předchozího hodnota je stále obnovena na postup exit., Nicméně, obyčejný SET příkaz (bez LOCAL) přepíše na SET klauzule, podobně jako pro předchozí SET LOCAL příkaz: účinky takového příkazu bude přetrvávat po řízení ukončit, pokud není aktuální transakce je vrácena zpět.

Pokud SET doložka je připojena k řízení, pak tento postup nelze provést transakce řídicí příkazy (například COMMIT ROLLBACK, v závislosti na jazyku).,

viz SET a Kapitola 19 pro více informací o povolených názvech a hodnotách parametrů.

definition

řetězcová konstanta definující postup; význam závisí na jazyce. Může to být název interního postupu, cesta k objektovému souboru, příkaz SQL nebo text v procedurálním jazyce.

často je užitečné použít dollar quoting (viz bod 4.1.2.4) k zápisu řetězce definice postupu, spíše než normální syntaxi jediné citace. Bez citace dolaru musí být všechny jednotlivé kotace nebo zpětné lomítka v definici postupu vyvráceny jejich zdvojnásobením.,

obj_file link_symbol

Tento formulář AS klauzule se používá pro dynamicky zatížitelné jazyka C postupy při řízení název v jazyce C, zdrojový kód není stejný jako název SQL proceduru. Řetězec obj_file je název souboru sdílené knihovny obsahující kompilovaný postup C a je interpretován jako příkaz LOAD. Řetězec link_symbol je symbol odkazu postupu, tedy název postupu ve zdrojovém kódu jazyka C., Pokud je symbol odkazu vynechán, předpokládá se, že je stejný jako název definovaného postupu SQL.

při opakovaných hovorechCREATE PROCEDURE se soubor načte pouze jednou za relaci. Chcete-li uvolnit a znovu načíst soubor (možná během vývoje), spusťte novou relaci.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *