Da, arată onorabil funcţia (deşi ar putea să arate şi mai bine), însă nu prea funcţionează corect. După câte înţeleg, ar trebui să returneze 1 pentru IBAN-urile corecte sau altă valoare (0 sau mai mare decât 1) pentru cele greşite.
De exemplu:
SELECT dbo.CumVretiVoiSaSeNumeasca('RO28CITI0000000824824444') -- IBAN valid, returnează 1 (corect)
SELECT dbo.CumVretiVoiSaSeNumeasca('RO97BACX0000000030193313') -- IBAN valid, returnează 1 (corect)
SELECT dbo.CumVretiVoiSaSeNumeasca('RO23INGB0001000000000222') -- IBAN valid, returnează 1 (corect)
SELECT dbo.CumVretiVoiSaSeNumeasca('RO28CITI0000000824824443') -- IBAN invalid, returnează 71 (corect)
SELECT dbo.CumVretiVoiSaSeNumeasca('RO28CITI000000082482444') -- IBAN invalid, returnează 0 (corect)
SELECT dbo.CumVretiVoiSaSeNumeasca('000000000000000000000001') -- IBAN invalid, returnează 10000 (corect)
Dar:
SELECT dbo.CumVretiVoiSaSeNumeasca('IT59A0306930542011614440681') -- IBAN valid (din Italia), returnează 0 (greşit)
SELECT dbo.CumVretiVoiSaSeNumeasca('RO26CITI\\00000824824444') -- IBAN invalid, returnează 1 (greşit)
SELECT dbo.CumVretiVoiSaSeNumeasca('RO2800000000000824824444') -- IBAN invalid, dă eroare (greşit)
SELECT dbo.CumVretiVoiSaSeNumeasca('RO28CITI0000000824824445') -- IBAN invalid, se blochează (greşit)
Răzvan