Advertisement
erleybru

Untitled

Jun 23rd, 2020
236
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 1.21 KB | None | 0 0
  1. SET TERM ^ ;
  2.  
  3. /* Stored functions bodies */
  4.  
  5. ALTER FUNCTION F_REG_TIPO_A (CODBANCO INTEGER)
  6. RETURNS VARCHAR(150) CHARACTER SET NONE
  7. AS
  8. DECLARE VReg VARCHAR(150);
  9.   DECLARE VNomeBanco CHAR(20);
  10.   DECLARE VCodBanco SMALLINT;
  11.   DECLARE VConvenio CHAR(20);
  12.   DECLARE VSequencia INTEGER;
  13.   DECLARE VEmpresa CHAR(20);
  14.   DECLARE VDataAtual CHAR(8);
  15. BEGIN
  16.   -- se o codigo do banco nao existir retornar erro
  17.   SELECT FIRST 1 NOME FROM EMPRESA INTO VEmpresa;
  18.  
  19.   SELECT NOME, COD_FEBRABAN, COD_CONVENIO, SEQUENCIA_ENVIO FROM BANCO
  20.   WHERE CODIGO = :codBanco
  21.   INTO VNomeBanco, VCodBanco, VConvenio, VSequencia;
  22.  
  23.   VReg = 'A' || '1' ||
  24.     RPAD(VConvenio, 20) ||
  25.     RPAD(VEmpresa, 20) ||
  26.     LPAD(TRIM(CAST(VCodBanco AS CHAR(3))), 3, '0') ||
  27.     LPAD(VNomeBanco, 20);
  28.  
  29.   SELECT CAST(EXTRACT(YEAR FROM CAST('NOW' AS DATE))*10000 +
  30.          EXTRACT(MONTH FROM CAST('NOW' AS DATE))*100 +
  31.          EXTRACT(DAY  FROM CAST('NOW' AS DATE)) AS VARCHAR(8))
  32.   FROM rdb$database
  33.   INTO VDataAtual;
  34.  
  35.   VReg = VReg || VDataAtual;
  36.  
  37.   VSequencia = VSequencia + 1;
  38.  
  39.   VReg = VReg || LPAD(TRIM(CAST(VSequencia AS CHAR(6))), 6, '0') ||
  40.     '06' || 'DEBITO AUTOMATICO' || RPAD(' ', 52, ' ');
  41.  
  42.   RETURN VReg;
  43. END ^
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement