<?xml version="1.0" encoding="utf-8"?>
<page xmlns="http://projectmallard.org/1.0/" type="topic" id="variables-syntax" xml:lang="gl">
  <info>
    <title type="sort">1</title>
    <link type="topic" xref="query-execution-perspective"/>
    <link type="topic" xref="data-manager-perspective"/>
  </info>
  <title>Variábeis en código SQL</title>
  <p>As variábeis (a veces denominadas como <em>marcadores de posición</em>) son lugares no código SQL que son substituídos polos valores reais cando se executa o código SQL. Os beneficios do uso dos mesmos é a execución máis rápida (xa que o código SQL só se analiza unha vez) e a protección fronte a vulnerabilidades de inxección de SQL.</p>
  <p>Pode usar variábeis en calquera código SQL e son definidas usando a seguinte sintaxe:</p>
  <code>
<![CDATA[##<variable name>[::<variable type>[::NULL]]]]></code>
  <p>Notas:</p>
  <list>
    <item><p>the <em>variable name</em> can contain any SQL identifier character or among the
	<code>+-.|@?</code>characters (no space allowed)</p></item>
    <item><p>the <em>variable type</em> can be among: <code>string</code>, <code>boolean</code>, 
	<code>int</code>, <code>date</code>, <code>time</code>, <code>timestamp</code>, 
	<code>guint</code>, <code>blob</code> and <code>binary</code></p></item>
    <item><p>the <code>::NULL</code> can be appended to specify that the variable may take the
	special <code>NULL</code> value.</p></item>
  </list>
  <p>Exemplos</p>
  <code>
##name::string
##id::int::NULL
##sales@3::date::NULL
##customers@id::int</code>
</page>
