SQL Server - Cortar cadena e insertar los datos a una tabla

 
Vista:
sin imagen de perfil

Cortar cadena e insertar los datos a una tabla

Publicado por Daniel (3 intervenciones) el 09/09/2016 17:42:18
Buen día compañeros, tengo una consulta, estoy registrando datos en una tabla y quisiera saber si se puede enviar como parámetro una sola cadena con datos concatenados por un separador "|", partirlo y guardar cada parte en una tabla:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[S_INSERTAR]
(
     @recibo_cadena VARCHAR(200)   <--- recibo en un solo parámetro el registro tipo: "01|Daniel|Campos|Av. Las Palmeras|996-3325"
)
AS
BEGIN
 
       (aquí cortaría la cadena)
 
INSERT INTO [dbo].[Tab_Cliente]
           ([ClienteId]
           ,[Nombre]
           ,[Apellido]
           ,[Direccion]
           ,[Telefono])
     VALUES
           (@recibo_cadena_1   < -- "01"
           ,@recibo_cadena_2   < -- "Daniel"
           ,@recibo_cadena_3   < -- "Campos"
           ,@recibo_cadena_4   < -- "Av. Las Palmeras"
           ,@recibo_cadena_4   < -- "996-3325" )
END
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Javier
Val: 111
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Cortar cadena e insertar los datos a una tabla

Publicado por Javier (45 intervenciones) el 10/09/2016 00:33:07
No se para que lo requieres hacer en SQL ni como estes manejando la informacion, si estas trabajando en VB o C# por ejemplo, creo te conviene mas trabajar el string desde codigo, igual te dejo una opcion para separar en SQL, tal vez te sirva.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
DECLARE @str varchar(max)
SET @str = '01|Daniel|Campos|Av. Las Palmeras|996-3325'
 
DECLARE @separator varchar(max)
SET @separator = '|'
 
DECLARE @Splited TABLE(id int IDENTITY(1,1), item varchar(max))
 
SET @str = REPLACE(@str, @separator, '''),(''')
SET @str = 'SELECT * FROM (VALUES(''' + @str + ''')) AS V(A)'
 
INSERT INTO @Splited
EXEC(@str)
 
SELECT * FROM @Splited
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Cortar cadena e insertar los datos a una tabla

Publicado por Daniel (3 intervenciones) el 12/09/2016 16:40:30
Me sirvió, muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar