Web design and hosting, database, cloud and social media solutions that deliver business results
  • Soluciones de negocios
    • Automatización Robótica de Procesos
    • Software
    • Servicios de bases
      • Actualización del servidor y servicios de DBA
      • BI de energía
      • Integración de datos
      • Informes
    • Diseño web
      • Diseño de logo
      • Optimización del sitio web
      • Seguridad del sitio web
      • Traducción y localización web
      • Via de pago
      • Herramientas técnicas
    • Servicios en la nube
      • Servicios en la nube de Google
      • Servicios web de Amazon
      • microsoft azure
    • Medio Social
    • Microsoft Office
    • Hardware de TI
  • Academia
    • Nuestro entorno de prueba
    • Diseño de base de datos de aprendizaje
      • Los basicos
      • Obtener consulta abierta
      • Usando datos del servidor SQL
      • SQL Server 2008 para planes de mantenimiento
      • Usar fechas de SQL Server
      • Uso de las funciones de SQL Server
      • Uso de SQL Server Pivot-Unpivot
    • Aprendiendo Diseño Web
      • Creación del sistema de gestión de contenido de Ousia
      • ASP-NET
      • CSS
      • Usando JavaScript
    • Uso de las redes sociales
      • Cambiar una cuenta de Facebook de personal a empresa
      • Elegir dónde enfocar el esfuerzo de las redes sociales
      • Solicitar una revisión de Google
      • Tamaños de imagen de redes sociales
      • Uso de metadatos para configurar imágenes de redes sociales
    • Aprendizaje en la nube y servicios de TI
      • Error del programador de tareas 2147943645
      • Solicitud de SSL y generación de archivo PFX en OpenSSL Simple Steps
  • Acerca de
    • Blog
      • Actualización principal de Google, enero de 2020
      • Cierre de Internet de Hot Chilli
      • Cómo elegir el contenido de los folletos publicitarios de su sitio web
      • Construyendo una máquina de juego de nivel de entrada
      • Las cosas más molestas de los sitios web en Internet
      • Los 5 mejores sitios web para obtener gráficos vectoriales gratuitos
      • Prevención de estafas en línea
      • Skimmers de la gig economy
    • Carreras
      • Traductor inglés-español
      • Traductor inglés-japonés
    • Equipo
      • Ali Al Amine
      • Ayse Hur
      • Chester Copperpot
      • Gavin Clayton
      • Sai Gangu
      • suneel kumar
      • Surya Mukkamala
    • Portafolio
Deutsch (DE)English (EN-US)English (EN-GB)Español (ES)Français (FR)हिंदी (HI)italiano (IT)日本語 (JA)polski (PL)Português (PT)русский (RU)Türk (TR)中国的 (ZH)

Comprobar el formato ISIN con una función SQL

Crea una función para comprobar el formato del ISIN en SQL Server, pero no si éste realmente existe y es válido.

Author

Contexto

Este código fue creado como parte de una rutina de importación para limpiar los datos procedentes de fuentes externas, donde había todo tipo de personajes que no debería haber estado allí.
Éste comprueba el formato de un ISIN . Esto se amplió código SQL utilizando la documentación sobre el artículo de Wikipedia sobre el enlace. Usted tendrá que crear la siguiente tabla para contener toda la información del país.
Esto es parte de tres artículos vinculados que comprobará ISIN, SEDOL y CUSIP identificadores.

Create Table

CREATE TABLE SecuritiesIssuer(

SecuritiesIssuerID intIDENTITY(1,1) NOT NULL CONSTRAINT PK_SecuritiesIssuerID PRIMARY KEY,

SecuritiesIssuerShort NVARCHAR(2) NULL,

SecuritiesIssuerCountry NVARCHAR(50) NULL,

SecuritiesIssuerDescription NVARCHAR(max) NULL)

ISIN Countries

Short Country Description
AF AFGHANISTAN NULL
AX ÅLAND ISLANDS NULL
AL ALBANIA NULL
DZ ALGERIA NULL
AS AMERICAN SAMOA NULL
AD ANDORRA NULL
AO ANGOLA NULL
AI ANGUILLA NULL
AQ ANTARCTICA NULL
AG ANTIGUA AND BARBUDA NULL
AR ARGENTINA NULL
AM ARMENIA NULL
AW ARUBA NULL
AU AUSTRALIA NULL
AT AUSTRIA NULL
AZ AZERBAIJAN NULL
BS BAHAMAS NULL
BH BAHRAIN NULL
BD BANGLADESH NULL
BB BARBADOS NULL
BY BELARUS NULL
BE BELGIUM NULL
BZ BELIZE NULL
BJ BENIN NULL
BM BERMUDA NULL
BT BHUTAN NULL
BO BOLIVIA, PLURINATIONAL STATE OF NULL
BQ BONAIRE, SINT EUSTATIUS AND SABA NULL
BA BOSNIA AND HERZEGOVINA NULL
BW BOTSWANA NULL
BV BOUVET ISLAND NULL
BR BRAZIL NULL
IO BRITISH INDIAN OCEAN TERRITORY NULL
BN BRUNEI DARUSSALAM NULL
BG BULGARIA NULL
BF BURKINA FASO NULL
BI BURUNDI NULL
KH CAMBODIA NULL
CM CAMEROON NULL
CA CANADA NULL
CV CAPE VERDE NULL
KY CAYMAN ISLANDS NULL
CF CENTRAL AFRICAN REPUBLIC NULL
TD CHAD NULL
CL CHILE NULL
CN CHINA NULL
CX CHRISTMAS ISLAND NULL
CC COCOS (KEELING) ISLANDS NULL
CO COLOMBIA NULL
KM COMOROS NULL
CG CONGO NULL
CD CONGO, THE DEMOCRATIC REPUBLIC OF THE NULL
CK COOK ISLANDS NULL
CR COSTA RICA NULL
CI CÔTE D’IVOIRE NULL
HR CROATIA NULL
CU CUBA NULL
CW CURAÇAO NULL
CY CYPRUS NULL
CZ CZECH REPUBLIC NULL
DK DENMARK NULL
DJ DJIBOUTI NULL
DM DOMINICA NULL
DO DOMINICAN REPUBLIC NULL
EC ECUADOR NULL
EG EGYPT NULL
SV EL SALVADOR NULL
GQ EQUATORIAL GUINEA NULL
ER ERITREA NULL
EE ESTONIA NULL
ET ETHIOPIA NULL
FK FALKLAND ISLANDS (MALVINAS) NULL
FO FAROE ISLANDS NULL
FJ FIJI NULL
FI FINLAND NULL
FR FRANCE NULL
GF FRENCH GUIANA NULL
PF FRENCH POLYNESIA NULL
TF FRENCH SOUTHERN TERRITORIES NULL
GA GABON NULL
GM GAMBIA NULL
GE GEORGIA NULL
DE GERMANY NULL
GH GHANA NULL
GI GIBRALTAR NULL
GR GREECE NULL
GL GREENLAND NULL
GD GRENADA NULL
GP GUADELOUPE NULL
GU GUAM NULL
GT GUATEMALA NULL
GG GUERNSEY NULL
GN GUINEA NULL
GW GUINEA-BISSAU NULL
GY GUYANA NULL
HT HAITI NULL
HM HEARD ISLAND AND MCDONALD ISLANDS NULL
VA HOLY SEE (VATICAN CITY STATE) NULL
HN HONDURAS NULL
HK HONG KONG NULL
HU HUNGARY NULL
IS ICELAND NULL
IN INDIA NULL
ID INDONESIA NULL
IR IRAN, ISLAMIC REPUBLIC OF NULL
IQ IRAQ NULL
IE IRELAND NULL
IM ISLE OF MAN NULL
IL ISRAEL NULL
IT ITALY NULL
JM JAMAICA NULL
JP JAPAN NULL
JE JERSEY NULL
JO JORDAN NULL
KZ KAZAKHSTAN NULL
KE KENYA NULL
KI KIRIBATI NULL
KP KOREA, DEMOCRATIC PEOPLE’S REPUBLIC OF NULL
KR KOREA, REPUBLIC OF NULL
KW KUWAIT NULL
KG KYRGYZSTAN NULL
LA LAO PEOPLE’S DEMOCRATIC REPUBLIC NULL
LV LATVIA NULL
LB LEBANON NULL
LS LESOTHO NULL
LR LIBERIA NULL
LY LIBYA NULL
LI LIECHTENSTEIN NULL
LT LITHUANIA NULL
LU LUXEMBOURG NULL
MO MACAO NULL
MK MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF NULL
MG MADAGASCAR NULL
MW MALAWI NULL
MY MALAYSIA NULL
MV MALDIVES NULL
ML MALI NULL
MT MALTA NULL
MH MARSHALL ISLANDS NULL
MQ MARTINIQUE NULL
MR MAURITANIA NULL
MU MAURITIUS NULL
YT MAYOTTE NULL
MX MEXICO NULL
FM MICRONESIA, FEDERATED STATES OF NULL
MD MOLDOVA, REPUBLIC OF NULL
MC MONACO NULL
MN MONGOLIA NULL
ME MONTENEGRO NULL
MS MONTSERRAT NULL
MA MOROCCO NULL
MZ MOZAMBIQUE NULL
MM MYANMAR NULL
NA NAMIBIA NULL
NR NAURU NULL
NP NEPAL NULL
NL NETHERLANDS NULL
NC NEW CALEDONIA NULL
NZ NEW ZEALAND NULL
NI NICARAGUA NULL
NE NIGER NULL
NG NIGERIA NULL
NU NIUE NULL
NF NORFOLK ISLAND NULL
MP NORTHERN MARIANA ISLANDS NULL
NO NORWAY NULL
OM OMAN NULL
PK PAKISTAN NULL
PW PALAU NULL
PS PALESTINIAN TERRITORY, OCCUPIED NULL
PA PANAMA NULL
PG PAPUA NEW GUINEA NULL
PY PARAGUAY NULL
PE PERU NULL
PH PHILIPPINES NULL
PN PITCAIRN NULL
PL POLAND NULL
PT PORTUGAL NULL
PR PUERTO RICO NULL
QA QATAR NULL
RE RÉUNION NULL
RO ROMANIA NULL
RU RUSSIAN FEDERATION NULL
RW RWANDA NULL
BL SAINT BARTHÉLEMY NULL
SH SAINT HELENA, ASCENSION AND TRISTAN DA CUNHA NULL
KN SAINT KITTS AND NEVIS NULL
LC SAINT LUCIA NULL
MF SAINT MARTIN (FRENCH PART) NULL
PM SAINT PIERRE AND MIQUELON NULL
VC SAINT VINCENT AND THE GRENADINES NULL
WS SAMOA NULL
SM SAN MARINO NULL
ST SAO TOME AND PRINCIPE NULL
SA SAUDI ARABIA NULL
SN SENEGAL NULL
RS SERBIA NULL
SC SEYCHELLES NULL
SL SIERRA LEONE NULL
SG SINGAPORE NULL
SX SINT MAARTEN (DUTCH PART) NULL
SK SLOVAKIA NULL
SI SLOVENIA NULL
SB SOLOMON ISLANDS NULL
SO SOMALIA NULL
ZA SOUTH AFRICA NULL
GS SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS NULL
SS SOUTH SUDAN NULL
ES SPAIN NULL
LK SRI LANKA NULL
SD SUDAN NULL
SR SURINAME NULL
SJ SVALBARD AND JAN MAYEN NULL
SZ SWAZILAND NULL
SE SWEDEN NULL
CH SWITZERLAND NULL
SY SYRIAN ARAB REPUBLIC NULL
TW TAIWAN, PROVINCE OF CHINA NULL
TJ TAJIKISTAN NULL
TZ TANZANIA, UNITED REPUBLIC OF NULL
TH THAILAND NULL
TL TIMOR-LESTE NULL
TG TOGO NULL
TK TOKELAU NULL
TO TONGA NULL
TT TRINIDAD AND TOBAGO NULL
TN TUNISIA NULL
TR TURKEY NULL
TM TURKMENISTAN NULL
TC TURKS AND CAICOS ISLANDS NULL
TV TUVALU NULL
UG UGANDA NULL
UA UKRAINE NULL
AE UNITED ARAB EMIRATES NULL
GB UNITED KINGDOM NULL
US UNITED STATES NULL
UM UNITED STATES MINOR OUTLYING ISLANDS NULL
UY URUGUAY NULL
UZ UZBEKISTAN NULL
VU VANUATU NULL
VE VENEZUELA, BOLIVARIAN REPUBLIC OF NULL
VN VIET NAM NULL
VG VIRGIN ISLANDS, BRITISH NULL
VI VIRGIN ISLANDS, U.S. NULL
WF WALLIS AND FUTUNA NULL
EH WESTERN SAHARA NULL
YE YEMEN NULL
ZM ZAMBIA NULL
ZW ZIMBABWE NULL
XS International NULL

SQL

ALTER FUNCTION CheckISIN(@ISIN NVARCHAR(12))

RETURNS INT AS BEGIN

DECLARE @Check INT

--Check Digit not available

IF RIGHT(@ISIN,1) NOT BETWEEN '0' AND '9' BEGIN

SET @Check=-1

RETURN @Check

END

--Check country not available

IF (SELECT COUNT(*) FROM SecuritiesIssuer WHERE SecuritiesIssuerShort=LEFT(@ISIN,2))=0 BEGIN

SET @Check=-2

RETURN @Check

END

IF PATINDEX('%[^0-Z]%',@ISIN)>0 BEGIN

SET @Check=-3

RETURN @Check

END

 

DECLARE @Data NVARCHAR(30)=LEFT(@ISIN,11)

DECLARE @MultOdd INT= 1, @MultEve INT= 1

DECLARE @Sum INT=0,@StrOdd NVARCHAR(60)='',@StrEve NVARCHAR(60)=''

DECLARE @Letter INT,@Text VARCHAR(1)

      SET @Letter =PATINDEX('%[A-Z]%',@Data)

      SET @Text=SUBSTRING(@Data,@Letter,1)

      BEGIN

      WHILE @Letter>0

      BEGIN

      SET @Data=STUFF(@Data,@Letter,1,ASCII(UPPER(@Text))-55)

     

      SET @Letter =PATINDEX('%[A-Z]%',@Data)

      SET @Text=SUBSTRING(@Data,@Letter,1)

      END

END

--Get Length Multiplier

IF LEN(@Data)%2=0

BEGIN

SET @MultEve = 2;

END

ELSE

SET @MultOdd = 2;

 

SET @Letter = 1

WHILE @Letter<=LEN(@Data) BEGIN

IF @Letter%2=1 BEGIN

SET @StrOdd=@StrOdd+CONVERT(VARCHAR(60),CONVERT(INT,SUBSTRING(@Data,@Letter,1))*@MultOdd);

END

ELSE

SET @StrEve=@StrEve+CONVERT(VARCHAR(60),CONVERT(INT,SUBSTRING(@Data,@Letter,1))*@MultEve);

SET @Letter=@Letter+1

END

SET @Data=@StrOdd+@StrEve

 

SET @Letter = 1

WHILE @Letter<=LEN(@Data) BEGIN

SET @Sum=@Sum+CONVERT(INT,SUBSTRING(@Data,@Letter,1))

SET @Letter=@Letter+1

END

 

IF LEN(@ISIN)<>12 BEGIN

SET @Check=-4

RETURN @Check

END

 

IF ISNULL(@Check,0)=0 BEGIN

SET @Check =(SELECT (CASE WHEN RIGHT(@ISIN,1)=CONVERT(VARCHAR(1),(10-(@Sum%10))%10) THEN 1 ELSE 0 END));

END

 

RETURN @Check

END

Esto sólo se compruebe el formato del ISIN, no si realmente existe y es válido.

Déjanos la presión a nosotros, enfócate en lo que mejor sabes hacer
Un equipo multinacional con más de 20 años de experiencia que se especializa en servicios web, de base de datos, en la nube y en software de gestión empresarial a medida.
Aprende con nosotros programación basada en web y bases de datos
La academia Claytabase nace con el objetivo de ofrecer oportunidades a licenciados y estudiantes que quieran entrar en el mundo de las tecnologías de la información.
Aprendiendo Desarrollo y Diseño Web
Una selección de artículos sobre el uso efectivo de CSS, HTML, JavaScript y ASP.NET a partir de problemas que hemos superado en el pasado
Una selección de artículos de diseño de sitios web usando ASP.NET
Durante nuestro tiempo trabajando con ASP.NET, nos hemos encontrado con muchos problemas que necesitaban solución. Con suerte, esto le ahorrará tiempo.
Creación de un mapa del sitio XML desde SQL Server en ASP NET
Creación de un mapa del sitio XML desde SQL Server en ASP NET
Crear un feed RSS para su sitio web
Una manera fácil de crear un feed RSS para su sitio web en ASP.NET
Llamada a Google Translate desde ASP.NET mediante publicación
Llamar a Google Translate desde ASP.NET utilizando POST para documentos más largos de tu código.
Procedimiento almacenado con múltiples conjuntos de datos en la página web
Procedimiento almacenado con múltiples conjuntos de datos para vistas de cuadrícula en la página web
Social Media Tweet Share Me gusta Seguir Botones para Google Twitter y Facebook
.NET, Creación de Social Media Sharing botones con o sin JavaScript en C # y VB.NET
Uso de datos temporales en ASP.NET GridView
Generar una página de prueba con un GridView utilizando sólo datos temporales en ASP.NET
Creación del sistema de gestión de contenido de Ousia
Pasamos mucho tiempo pensando en cómo hacer que Ousia Content Management System fuera uno de los más rápidos. Aquí explicamos algunos de los conceptos puestos en marcha.
Artículos CSS
Artículos CSS
Crear objetos en caída en CSS
Cómo crear objetos que caen en CSS
Crear desplazamiento de CSS
Desplazamiento puede ahorrar mucho espacio, y puede ser muy delicadamente manejado en CSS3, junto con el poder de la imagen CSS Sprites y algunas matemáticas, vamos a convertir esta imagen a continuación en el banner rotatorio.
Usando JavaScript
Usando JavaScript
Aprende sobre servicios en la nube
Una selección de artículos sobre la administración de la nube y los servicios de TI, incluidos Office 365, los servicios de dominio y los certificados de seguridad.
Error del programador de tareas 2147943645
El error 2147943645 del programador de tareas sucede cuando el usuario no ha iniciado sesión, pero tiene una tarea configurada para ejecutarse con su nombre de usuario.
Solicitud de SSL y generación de archivo PFX en OpenSSL en pocos pasos
Solicitud de licencia SSL y generación de un archivo PFX en OpenSSL sólo en unos pocos y sencillos pasos
Aprende sobre diseño de bases de datos
A lo largo de los años hemos tenido problemas con las bases de datos y los hemos resuelto. Puedes leer sobre ellos aquí y esperamos que te sean de ayuda para tus sistemas
SQL Server - Aprender lo básico
Esta primera sección sobre bases de datos te guiará por los conceptos básicos de SQL Server, desde tablas y tipos de datos hasta seleccionar, actualizar y eliminar datos.
Crear una base de datos
En este artículo te enseñaremos todo lo necesario para poder aprender a crear bases de datos desde cero
Lo básico sobre distintos tipos de datos
En este artículo te enseñaremos todo lo básico que debes saber sobre los distintos tipos de datos que existen
Automatizar Open Query en MS SQL Server
Esta tabla y conjunto de procedimientos almacenados te permitirán automatizar la transferencia de datos desde bases de datos Oracle y Progress a SQL Server.
Obtén nombres de columna de tabla de servidor vinculado de Open Query
Este conjunto de procedimientos almacenados te permitirá ver las columnas disponibles en una tabla para bases de datos Oracle y Progress vinculadas a SQL Server.
Obtener Open Query - Oracle
Este procedimiento almacenado dinámico importará datos de una base de datos Oracle vinculada a SQL Server mediante OpenQuery.
Obtener Open Query - Progress
Este procedimiento almacenado dinámico importará datos de una base de datos Progress vinculada a SQL Server mediante OpenQuery.
Uso eficaz de los datos de SQL Server
Usar eficazmente SQL Server puede ahorrar horas de trabajo y procesamiento. Estos son algunos de nuestros mejores artículos sobre procesamiento y limpieza de datos.
Cláusulas WHERE de SQL con intervalos de fechas: ¿qué es lo mejor?
Examina la forma en que se manejan las fechas dentro de las cláusulas WHERE de SQL Server, y la mejor manera de utilizarlas
COUNT(*) vs COUNT(column)
Exploramos las diferencias entre COUNT(*) vs COUNT(column) en SQL Server y cual usar en el día a día.
Crear un CMS básico en SQL Server y NET
Cómo construir un sistema de gestión de contenidos con una base de datos SQL Server y una aplicación de formularios web ASP.NET. Esto es de la primera versión de Ousia.

Please note, this commenting system is still in final testing.
Copyright Claytabase Ltd 2020

Registered in England and Wales 08985867

Site Links

RSSLoginLink Política de cookiesmapa del sitio

Social Media

facebook.com/Claytabaseinstagram.com/claytabase/twitter.com/Claytabaselinkedin.com/company/claytabase-ltd

Get in Touch

+442392064871info@claytabase.comClaytabase Ltd, Unit 3d, Rink Road Industrial Estate, PO33 2LT, United Kingdom

Partnered With

La configuración de este sitio está configurada para permitir todas las cookies. Éstos se pueden cambiar en nuestra página de configuración y política de cookies. Al continuar utilizando este sitio, usted acepta el uso de cookies.
Ousia Logo
Logout
Ousia CMS Loader