<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="cs">
	<id>http://postgres.cz/index.php?action=history&amp;feed=atom&amp;title=Validace_I%C4%8C</id>
	<title>Validace IČ - Historie editací</title>
	<link rel="self" type="application/atom+xml" href="http://postgres.cz/index.php?action=history&amp;feed=atom&amp;title=Validace_I%C4%8C"/>
	<link rel="alternate" type="text/html" href="http://postgres.cz/index.php?title=Validace_I%C4%8C&amp;action=history"/>
	<updated>2026-05-12T22:33:55Z</updated>
	<subtitle>Historie editací této stránky</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>http://postgres.cz/index.php?title=Validace_I%C4%8C&amp;diff=437&amp;oldid=prev</id>
		<title>imported&gt;Pavel v 22. 10. 2008, 12:43</title>
		<link rel="alternate" type="text/html" href="http://postgres.cz/index.php?title=Validace_I%C4%8C&amp;diff=437&amp;oldid=prev"/>
		<updated>2008-10-22T12:43:46Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nová stránka&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Vycházím z algoritmu publikovaného na http://latrine.dgx.cz/jak-overit-platne-ic-a-rodne-cislo.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CREATE OR REPLACE FUNCTION validate_ic(varchar)&lt;br /&gt;
RETURNS boolean AS $$&lt;br /&gt;
DECLARE &lt;br /&gt;
  s integer;&lt;br /&gt;
  str_parts varchar[];&lt;br /&gt;
BEGIN&lt;br /&gt;
  SELECT INTO str_parts regexp_matches &lt;br /&gt;
     FROM regexp_matches($1, E&amp;#039;^(\\d{8})$&amp;#039;);&lt;br /&gt;
  IF FOUND THEN &lt;br /&gt;
    s := (SELECT sum(to_number(substring($1 FROM i FOR 1),&amp;#039;9&amp;#039;) * v) % 11 &lt;br /&gt;
             FROM (values(1, 8),(2,7),(3,6), (4,5),(5,4),(6,3), (7,2)) g(i,v));&lt;br /&gt;
    RETURN CASE WHEN s IN (0,10) THEN substring($1 FROM 8 FOR 1) = &amp;#039;1&amp;#039;&lt;br /&gt;
                WHEN s = 1 THEN substring($1 FROM 8 FOR 1) = &amp;#039;0&amp;#039;&lt;br /&gt;
                ELSE to_number(substring($1 FROM 8 FOR 1), &amp;#039;9&amp;#039;) = 11 - s END;&lt;br /&gt;
  ELSE&lt;br /&gt;
    RETURN false;&lt;br /&gt;
  END IF;&lt;br /&gt;
END;&lt;br /&gt;
$$ LANGUAGE plpgsql IMMUTABLE STRICT;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Výsledek ověříme:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
postgres=# select validate_ic(&amp;#039;69663963&amp;#039;);&lt;br /&gt;
 validate_ic &lt;br /&gt;
-------------&lt;br /&gt;
 t&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>imported&gt;Pavel</name></author>
	</entry>
</feed>