<?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=Dynamics_SQL</id>
	<title>Dynamics SQL - Historie editací</title>
	<link rel="self" type="application/atom+xml" href="http://postgres.cz/index.php?action=history&amp;feed=atom&amp;title=Dynamics_SQL"/>
	<link rel="alternate" type="text/html" href="http://postgres.cz/index.php?title=Dynamics_SQL&amp;action=history"/>
	<updated>2026-05-30T20:22:27Z</updated>
	<subtitle>Historie editací této stránky</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>http://postgres.cz/index.php?title=Dynamics_SQL&amp;diff=250&amp;oldid=prev</id>
		<title>imported&gt;Pavel v 12. 2. 2010, 22:08</title>
		<link rel="alternate" type="text/html" href="http://postgres.cz/index.php?title=Dynamics_SQL&amp;diff=250&amp;oldid=prev"/>
		<updated>2010-02-12T22:08:45Z</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;&amp;lt;pre&amp;gt;&lt;br /&gt;
CREATE OR REPLACE FUNCTION fx() &lt;br /&gt;
RETURNS int AS &lt;br /&gt;
$$&lt;br /&gt;
  BEGIN &lt;br /&gt;
    DECLARE a,b int; &lt;br /&gt;
    EXECUTE IMMEDIATE &amp;#039;SELECT 10,20&amp;#039; INTO a,b; &lt;br /&gt;
    PRINT a,b; &lt;br /&gt;
    RETURN a+b; &lt;br /&gt;
  END; &lt;br /&gt;
$$ LANGUAGE plpgpsm;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Syntax&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
EXECUTE IMMEDIATE vyraz [INTO (variables list| RECCORD or ROW variable)]  [USING variables list]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CREATE OR REPLACE FUNCTION fxx(a int)&lt;br /&gt;
RETURNS float AS &lt;br /&gt;
$$&lt;br /&gt;
  BEGIN&lt;br /&gt;
    DECLARE f float;&lt;br /&gt;
    PREPARE prep(float) from &amp;#039;select $1&amp;#039;;&lt;br /&gt;
    EXECUTE prep INTO f USING a; &lt;br /&gt;
    RETURN f ;&lt;br /&gt;
  END;&lt;br /&gt;
$$ LANGUAGE plpgpsm;&lt;br /&gt;
CREATE FUNCTION&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Syntax&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PREPARE name [ &amp;#039;(&amp;#039; types list &amp;#039;)&amp;#039; ] FROM expression&lt;br /&gt;
&lt;br /&gt;
EXECUTE name [INTO (variables list | RECORD or ROW expression)]&lt;br /&gt;
              [USING variables list]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CREATE OR REPLACE FUNCTION fx(a int)                                                                                    &lt;br /&gt;
RETURNS int AS                                                                                                          &lt;br /&gt;
$$                                                                                                                      &lt;br /&gt;
#option dump                                                                                                            &lt;br /&gt;
  BEGIN                                                                                                                 &lt;br /&gt;
    DECLARE x, y integer;                                                                                               &lt;br /&gt;
    DECLARE SQLSTATE char(5);                                                                                           &lt;br /&gt;
                                                                                                                        &lt;br /&gt;
    DECLARE cx CURSOR FOR prepstmt;                                                                                     &lt;br /&gt;
                                                                                                                        &lt;br /&gt;
    PREPARE prepstmt(int) FROM &amp;#039;SELECT a*100, b*100 FROM Foo WHERE Foo.a = $1&amp;#039;;                                         &lt;br /&gt;
                                                                                                                        &lt;br /&gt;
    OPEN cx USING a;                                                                                                    &lt;br /&gt;
                                                                                                                        &lt;br /&gt;
    FETCH cx INTO x, y;                                                                                                 &lt;br /&gt;
    WHILE SQLSTATE = &amp;#039;00000&amp;#039; DO                                                                                         &lt;br /&gt;
      PRINT x, y;                                                                                                       &lt;br /&gt;
      FETCH cx INTO x, y;                                                                                               &lt;br /&gt;
    END WHILE;                                                                                                          &lt;br /&gt;
                                                                                                                        &lt;br /&gt;
    CLOSE cx;                                                                                                           &lt;br /&gt;
    RETURN a;                                                                                                           &lt;br /&gt;
  END;                                                                                                                  &lt;br /&gt;
$$ LANGUAGE plpgpsm;        &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  --dangerous, variables _tab and _var are security risk&lt;br /&gt;
  EXECUTE IMMEDIATE &amp;#039;SELECT * FROM &amp;#039;|| _tab || &amp;#039; WHERE a = &amp;#039;&amp;#039;&amp;#039; || _var ||&amp;#039;&amp;#039;&amp;#039; INTO _a, _b;&lt;br /&gt;
&lt;br /&gt;
  -- less security risk, _tab cannot contains special chars.&lt;br /&gt;
  -- only _tabs is security risk&lt;br /&gt;
  PREPARE psel(varchar) &amp;#039;SELECT * FROM &amp;#039; || _tab || &amp;#039;WHERE a = ?&amp;#039;;&lt;br /&gt;
  EXECUTE psel INTO _a, _b  USING _var;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>imported&gt;Pavel</name></author>
	</entry>
</feed>