<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="cs">
	<id>http://postgres.cz/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=85.160.78.222</id>
	<title>PostgreSQL - Příspěvky [cs]</title>
	<link rel="self" type="application/atom+xml" href="http://postgres.cz/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=85.160.78.222"/>
	<link rel="alternate" type="text/html" href="http://postgres.cz/wiki/Speci%C3%A1ln%C3%AD:P%C5%99%C3%ADsp%C4%9Bvky/85.160.78.222"/>
	<updated>2026-09-10T23:04:31Z</updated>
	<subtitle>Příspěvky</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>http://postgres.cz/index.php?title=Signalizace_chyb&amp;diff=233</id>
		<title>Signalizace chyb</title>
		<link rel="alternate" type="text/html" href="http://postgres.cz/index.php?title=Signalizace_chyb&amp;diff=233"/>
		<updated>2007-02-18T08:36:56Z</updated>

		<summary type="html">&lt;p&gt;85.160.78.222: /* Příkaz SIGNAL */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Příkaz SIGNAL===&lt;br /&gt;
Tento příkaz slouží k signalizaci jedné určité události. Typ a význam události je určen SQLSTATE hodnotou, což je pětiznakový řetězec. Třída (první dva znaky) určují úroveň signálu. Rozlišujeme mezi třídami:&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
| Třída || význam &lt;br /&gt;
|-&lt;br /&gt;
| 00 || úspěch&lt;br /&gt;
|-&lt;br /&gt;
| 01 || info&lt;br /&gt;
|-&lt;br /&gt;
| 02 || varování&lt;br /&gt;
|-&lt;br /&gt;
| xx || chyba&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Kromě hodnoty SQLSTATE můžeme určit ještě další atributy signálu (výjimky): message_text, pg_message_hint a pg_message_detail. Všechny nezachycené chybové signály se šíří do vnějšího složeného příkazu. Pokud signál není zachycen, pak dojde k přerušení provádění procedury. Signály třídy 00 nelze zachytit. Signály tříd 01 a 02 lze zachytit. Pokud nejsou zachyceny, tak se nešíří do vnějšího bloku ale přeposílají rovnou ke klientovi. Nezachycené signály s SQLSTATE 02000 jsou zachyceny předdefinovaným prázdným handlerem (signal NOT FOUND).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Syntaxe&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SIGNAL (SQLSTATE [VALUE] &#039;xxxxx&#039;|deklarovaná podmínka) &lt;br /&gt;
  [(message_text|hint|detail) &#039;=&#039; retezec [, ...]]&lt;br /&gt;
&lt;br /&gt;
RESIGNAL [(SQLSTATE [VALUE] &#039;xxxxx&#039;|deklarovaná podmínka)]&lt;br /&gt;
  [(message_text|hint|detail) &#039;=&#039; retezec [, ...]]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Příkaz RESIGNAL umožňuje odeslat zachycený originální případně modifikovaný signál. Tento příkaz lze použít pouze v těle handleru.&lt;/div&gt;</summary>
		<author><name>85.160.78.222</name></author>
	</entry>
	<entry>
		<id>http://postgres.cz/index.php?title=P%C5%99%C3%ADkaz_GET_DIAGNOSTICS&amp;diff=238</id>
		<title>Příkaz GET DIAGNOSTICS</title>
		<link rel="alternate" type="text/html" href="http://postgres.cz/index.php?title=P%C5%99%C3%ADkaz_GET_DIAGNOSTICS&amp;diff=238"/>
		<updated>2007-02-18T08:36:00Z</updated>

		<summary type="html">&lt;p&gt;85.160.78.222: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Tento příkaz je v SQL/PSM poměrně vágně definován a je celkem i dost odlišně implementován v různých databázích podporujících SQL/PSM. Částečně se od sebe odlišuje syntaxe, liší se i názvy některých diagnostických klíčů. V PL/pgPSM jsou definovány následující klíče: ROW_COUNT, RESULT_OID, RETURNED_SQLSTATE, MESSAGE_TEXT, MESSAGE_LENGTH, PG_MESSAGE_HINT, PG_MESSAGE_DETAIL, CONSTRAINT_NAME. Standard definuje další klíče (němluvě o dalších desitkách klíču v SQLPL), ty však nejsou poskytované jádrem PostgreSQL a proto nemohou být používány ani v PL/pgPSM.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Syntaxe&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GET [CURRENT|STACKED] DIAGNOSTICS [(CONDITION|EXCEPTION) hloubka] proměnná = klíč [,...];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hodnoty přiřazené k jednotlivým klíčům jsou získávány z tzv. diagnostických oblastí (skupina klíčů). Pokud se aktivuje exception handler, dojde k uložení aktuální diagnostické oblasti na zásobník a k vytvoření její kopie, která se dále považuje za aktuální. Po opuštění těla handleru se oblast ze zásobníku vyvolá zpět. Provádění příkazů vždy ovlivňuje jen aktuální diagnostickou oblast. K uloženým oblastem má přístup jen příkaz GET STACKED DIAGNOSTICS. Tato technika umožňuje získat diagnostické informace o výjimce, která aktivovala handler i ve všech příkazech těla handleru (bez této techniky jsme museli proměnné přečíst prvním příkazem v těle handleru).&lt;/div&gt;</summary>
		<author><name>85.160.78.222</name></author>
	</entry>
</feed>