La Unión Europea emprendió el proyecto de «SEPA» «Single European Payments» (Zona Única de Pagos en Euros) que persigue la implantación de servicios de pago comunes a toda la Unión que sustituyan a los actuales servicios de pago nacionales. Esta circunstancia conlleva, entre otras cosas, la desaparición de los antiguos C.C.C. (Códigos de Cuenta Corriente) de 20 dígitos, al incorporarse el IBAN a la numeración, de manera que las cuentas bancarias se identificarán con una secuencia alfanumérica de 24 caracteres formada por 5 grupos de 4 dígitos precedidos por 2 letras identificativas del país y 2 dígitos de control.

El Reglamento (CE) 260/2012, establece el día 1 de febrero de 2014 como fecha final de migración a SEPA y momento a partir del cual todas las transferencias y adeudos realizados en España serán idénticos a los realizados en cualquier país de la zona SEPA.

Si como es nuestro caso, necesitamos obtener el IBAN de un gran numero de clientes, en lugar de contactar con ellos y solicitarlo de uno en uno, es más operativo el cálculo del IBAN a partir de los 20 dígitos del número de cuenta.

La siguiente función para Oracle en PL/SQL hace justo eso.

FUNCTION CUENTA_BANCARIA_IBAN(numCuenta VARCHAR2) RETURN varchar2 IS
   sIBAN varchar2(24);
   nIBANConversion number;
BEGIN
  IF numCuenta IS NULL THEN
    RETURN '';
  ELSE
    nIBANConversion := TO_NUMBER(concat(numCuenta, '142800'));
    sIBAN := replace(concat('ES',TO_CHAR(98-MOD(nIBANConversion,97),'00')), ' ', '');
    sIBAN := concat(sIBAN, numCuenta);
    RETURN sIBAN;
  END IF;
END;

OJO!!! Solo está diseñado para obtener códigos a partir de cuentas bancarias españolas.

Optin

¡ No se Pierda Nuestro Boletín !

Suscribirse y le comunicaremos cuando publiquemos nuevos artículos.

 

(No más de 1 correo semanal | 100% sin SPAM)

Se ha suscrito correctamente.

Pin It on Pinterest

Share This