title: MySql, temp tables, error 1422
body: <p>My problem is:</p>
  
  <p>Im using 3 function and 1 SP to make a convertion of numbers to words... when i call the SP from one of my functions </p>
  
  <pre><code>    CALL extenso_trata_grupo(`ivalor`, ' Triliao', ' Trilioes', `flag_e`, `s_ext`);
      Select `s_ext` INTO `s_ext` from tbl_temp;
  </code></pre>
  
  <p>This giving me a 1422 error... when i use it by itself (alone), without the <code>INTO</code>, it gives me no error...</p>
  
  <p>Any help? </p>
  
  <p><strong>UPDATE</strong> </p>
  
  <pre><code>BEGIN
  DECLARE ivalor BIGINT;
  DECLARE s_ext VARCHAR(255);
  DECLARE flag_e BIT;
  DECLARE grupo DECIMAL(10, 2);
  
  SET s_ext = '';
  SET flag_e  = 0;
  SET grupo   = 0;
  
  if valor &gt;= 1 then
      set ivalor = valor / 1000000000000;
      if ivalor &gt; 0 then
          set valor = valor - (ivalor * 1000000000000);
          CALL extenso_trata_grupo(`ivalor`, ' Triliao', ' Trilioes', `flag_e`, `s_ext`);
              Select `s_ext` INTO `s_ext` from tbl_temp;
      end if;
      set ivalor = valor / 1000000000;
      if ivalor &gt; 0 then
          set valor = valor - (ivalor * 1000000000);
          CALL extenso_trata_grupo(`ivalor`, ' Biliao', ' Bilioes', `flag_e`, `s_ext`);
                  Select `s_ext` INTO `s_ext` from tbl_temp;
      end if;
      set ivalor = valor / 1000000;
      if ivalor &gt; 0 then
          set valor = valor - (ivalor * 1000000);
          CALL extenso_trata_grupo(`ivalor`, ' Milhao', ' Milhao', `flag_e`, `s_ext`); 
              Select `s_ext` INTO `s_ext` from tbl_temp;
      end if;
      ...
      return `s_ext`;
  END
  </code></pre>
  
  <p><strong>UPDATE</strong></p>
  
  <p>Stored Procedure extenso_trata_grupo</p>
  
  <pre><code>BEGIN
  DECLARE RETORNO VARCHAR(255);
  DECLARE FLAG INT;
  
  SET RETORNO = s_ext;
  SET FLAG    = flag_e;
  
  if grupo &lt;&gt; 0 THEN
      if flag_e = 1 THEN
          SET RETORNO = CONCAT(RETORNO,' e');
      END IF;
      SET flag_e = 1;
      SET RETORNO = CONCAT(RETORNO,
          (SELECT extenso_grupo(grupo) as grupo),
          (CASE WHEN grupo = 1 THEN singular ELSE plural END));
  END IF;
  DROP TABLE IF EXISTS `tbl_temp`;
  CREATE TEMPORARY TABLE `tbl_temp` (
      flag_e tinyint,
      s_ext varchar(255)
  );
  INSERT INTO `tbl_temp` (flag_e, s_ext) VALUES(flag, retorno);
  END
  </code></pre>