Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/08/2015, 14:19
juanferschussmuller
 
Fecha de Ingreso: agosto-2015
Mensajes: 2
Antigüedad: 8 años, 8 meses
Puntos: 0
Guardar Resultado de Procedimiento SQL server 2012

Buenas, tengo el siguiente procedimiento almacenado:

Código SQL:
Ver original
  1. USE [JackFack]
  2. GO
  3. /****** Object:  StoredProcedure [dbo].[SerializeJSON]    Script Date: 26/8/2015 4:17:45 p. m. ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8.  
  9. ALTER PROCEDURE [dbo].[SerializeJSON] (@ParameterSQL AS VARCHAR(MAX))
  10. AS
  11. BEGIN
  12.     DECLARE @SQL NVARCHAR(MAX)
  13.     DECLARE @XMLString VARCHAR(MAX)
  14.     DECLARE @XML XML
  15.     DECLARE @Paramlist NVARCHAR(1000)
  16.  
  17.     SET @Paramlist = N'@XML XML OUTPUT'
  18.     SET @SQL = 'WITH PrepareTable (XMLString)'
  19.     SET @SQL = @SQL + 'AS('
  20.     SET @SQL = @SQL + @ParameterSQL + ' FOR XML RAW,TYPE,ELEMENTS'
  21.     SET @SQL = @SQL + ')'
  22.     SET @SQL = @SQL + 'SELECT @XML=[XMLString]FROM[PrepareTable]'
  23.  
  24.     EXEC sp_executesql @SQL
  25.         , @Paramlist
  26.         , @XML = @XML OUTPUT
  27.  
  28.     SET @XMLString = CAST(@XML AS VARCHAR(MAX))
  29.  
  30.     DECLARE @JSON VARCHAR(MAX)
  31.     DECLARE @ROW VARCHAR(MAX)
  32.     DECLARE @RowStart INT
  33.     DECLARE @RowEnd INT
  34.     DECLARE @FieldStart INT
  35.     DECLARE @FieldEnd INT
  36.     DECLARE @KEY VARCHAR(MAX)
  37.     DECLARE @VALUE VARCHAR(MAX)
  38.     DECLARE @StartRoot VARCHAR(100);
  39.  
  40.     SET @StartRoot = '<row>'
  41.  
  42.     DECLARE @EndRoot VARCHAR(100);
  43.  
  44.     SET @EndRoot = '</row>'
  45.  
  46.     DECLARE @StartField VARCHAR(100);
  47.  
  48.     SET @StartField = '<'
  49.  
  50.     DECLARE @EndField VARCHAR(100);
  51.  
  52.     SET @EndField = '>'
  53.     SET @RowStart = CharIndex(@StartRoot, @XMLString, 0)
  54.     SET @JSON = ''
  55.  
  56.     WHILE @RowStart > 0
  57.     BEGIN
  58.         SET @RowStart = @RowStart + Len(@StartRoot)
  59.         SET @RowEnd = CharIndex(@EndRoot, @XMLString, @RowStart)
  60.         SET @ROW = SUBSTRING(@XMLString, @RowStart, @RowEnd - @RowStart)
  61.         SET @JSON = @JSON + '{'
  62.         -- for each row
  63.         SET @FieldStart = CharIndex(@StartField, @ROW, 0)
  64.  
  65.         WHILE @FieldStart > 0
  66.         BEGIN
  67.             -- parse node key
  68.             SET @FieldStart = @FieldStart + Len(@StartField)
  69.             SET @FieldEnd = CharIndex(@EndField, @ROW, @FieldStart)
  70.             SET @KEY = SUBSTRING(@ROW, @FieldStart, @FieldEnd - @FieldStart)
  71.             SET @JSON = @JSON + '"' + @KEY + '":'
  72.             -- parse node value
  73.             SET @FieldStart = @FieldEnd + 1
  74.             SET @FieldEnd = CharIndex('</', @ROW, @FieldStart)
  75.             SET @VALUE = SUBSTRING(@ROW, @FieldStart, @FieldEnd - @FieldStart)
  76.             SET @JSON = @JSON + '"' + @VALUE + '",'
  77.             SET @FieldStart = @FieldStart + Len(@StartField)
  78.             SET @FieldEnd = CharIndex(@EndField, @ROW, @FieldStart)
  79.             SET @FieldStart = CharIndex(@StartField, @ROW, @FieldEnd)
  80.         END
  81.  
  82.         IF LEN(@JSON) > 0
  83.             SET @JSON = SUBSTRING(@JSON, 0, LEN(@JSON))
  84.         SET @JSON = @JSON + '},'
  85.         --/ for each row
  86.         SET @RowStart = CharIndex(@StartRoot, @XMLString, @RowEnd)
  87.     END
  88.  
  89.     IF LEN(@JSON) > 0
  90.         SET @JSON = SUBSTRING(@JSON, 0, LEN(@JSON))
  91.     SET @JSON = '[' + @JSON + ']'
  92.  
  93.     SELECT @JSON
  94.    
  95.    
  96. END
[/B]

Mi pregunta es la siguiente, como puedo guardar el resultado de dicho procedimiento en un archivo txt?

aguardo sus comentaros, desde ya muchas gracias!

Última edición por gnzsoloyo; 26/08/2015 a las 14:29 Razón: Pesimamente etiquetado.