Advertisement
erleybru

Untitled

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