none
Exportar un Txt .. con ciertos datos desde una vista en sql server RRS feed

  • Pregunta

  • Buenas .. Ante todo mis saludos y agradeciendo de antemano su valiosa colaboración..

    primero el fin es poder exportar un resultado de una consulta a un txt.. les cuento.. de varias tabla realice una vista don en ella tengo datos que son los que debo exportar al txt..este "txt" debe estar delimitado y llevar un cierto orden en los datos. aparte debe llevar una operación de suma de registro y totalizar ciertos campos...

    a continuación presento mi vista con los datos que deseo exportar 

          (((por Hora No Puedo Colocar Imagen hasta que verifiquen mi cuenta...:::??

    a continuación como debería de salir en el "TXT".:

    ____________________________________________________________________________________________

    "01"|REFERENCIA|VALOR|FECHA|NOMBRES|APELLIDO 1|APELLIDO 2|CAMPO 4|CAMPO 5

    "02"|"17153694"|30000|2017-11-11 08:00:00|"JUAN BAUTISTA"|"JIMENEZ"|"SOPO"|"NA"|"NA" "02"|"91268256"|27000|2017-11-11 08:00:00|"JOSE LUIS"|"SANDOVAL"|"MEZA"|"NA"|"NA"

    "03"|10|242300|2017-11-11 08:00:00|||||

    ____________________________________________________________________________________

    Detallo..: "1" La primera linea representa el encabezado

    la linea "2" los valores de los registros

    la linea "3" debo tener Suma total de registro | Totalizar la Suma Del Campo Valor | Traer La fecha y hora de cuando se genera el "TXT" ||||||| y por ultimo agregar el carácter delimitador "|"

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    para esto genero el siguiente scripts. donde creo una tabla adicional donde voy a llevar estos datos y poder hacer mi operación.

    IF NOT  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Resultados]') AND type in (N'U'))
       CREATE TABLE Resultados
       (
       Linea		VARCHAR(100),
       Referencia	VARCHAR(15),
       Valor		Varchar(25),
       Fecha		varchar(25),
       Nombres	VARCHAR(8000),
       Apellido1 varchar(8000),
       Apellido2 varchar(8000),
       Campo4   VARCHAR(20),
       Campo5  VARCHAR(20)
       )
       delete from Resultados
    
       INSERT INTO Resultados (Linea,Referencia, Valor, Fecha, Nombres, Apellido1, Apellido2, Campo4, Campo5)
    SELECT '01', 'REFERENCIA', 'VALOR', 'FECHA','NOMBRES','Apellido1','Apellido2','Campo4','Campo5'
    
    INSERT INTO Resultados(Linea, Referencia, Valor, Fecha, Nombres,Apellido1,Apellido2,Campo4,Campo5)
    SELECT '02',Convert(varchar(15),o.Referencia), convert(varchar(25),o.Valor), convert(varchar(25),o.Fecha), convert(varchar(8000),o.NOMBRES), convert(varchar(8000), o.APELLIDO1),convert(varchar(8000),o. APELLIDO2), convert(varchar(20),'NA'),convert(varchar(20),'NA')
    
    FROM dbo.relacionsaldosmayoro as o
    

    al correr esto me da el siguiente error.:

    (1 filas afectadas)

    (1 filas afectadas)
    Mens. 8152, Nivel 16, Estado 14, Línea 19
    Los datos de cadena o binarios se truncarían.
    Se terminó la instrucción.

    ---------------------------------------------------

    No logro descifrar este error según debería ser por el tamaño del valor del registro declarado ..cuando lo convierto a varchar no se de verdad pido su colaboración. no se si tiene que ver que mis datos de la vista vienen de otras tablas y en ellas son (no null) y (Null)..

    no se si debo agregar value no null .. cuando lo intento me da error igual ..

    les dejo imagen de los campos en la vista de donde estoy insertando los datos

    -------------------------------------------------------------

    (((( No Puedo Colocar La Imagen)))

    Columnas...

    Referencia (Varchar(15),No Null)

    Valor (Decimal(28,4),No Null)

    Fecha (Datetime,No Null)

    Nombres (Varchar(8000), Null)

    Apellido1 (Varchar(8000), Null)

    Apellido2 (Varchar(8000), Null)

    Así están los datos en la vista de donde obtengo los datos

    ---------------------------------------

    bueno acá les dejo mi información...

    Agradezco su valiosa colaboración y ayuda

     ------------------------------------------------------------------------

    después de este procedimiento tendría que generar la salida del txt

    ....... Por ahora debo de hallar el error ..

    miércoles, 20 de junio de 2018 8:07

Todas las respuestas

  • Hola Ljcr:

    INSERT INTO Resultados(Linea, Referencia, Valor, Fecha, Nombres,Apellido1,Apellido2,Campo4,Campo5)
    SELECT '02',Convert(varchar(15),o.Referencia), convert(varchar(25),o.Valor), convert(varchar(25),o.Fecha), convert(varchar(8000),o.NOMBRES), convert(varchar(8000), o.APELLIDO1),convert(varchar(8000),o. APELLIDO2), convert(varchar(20),'NA'),convert(varchar(20),'NA')
    
    FROM dbo.relacionsaldosmayoro as o

    si relacionsaldosmayoro tiene campos como referencia cuyo tamaño es mayor que 15, no puede castearlos, para eso tienes que darle la funcion Substring (si quieres recortarlo).....

    Te he puesto referencia, pero es valor que tienes un 25 y un 28 en la definicion de la tabla

    Puede ser que por ahí te venga el error.

    Un saludo


    • Editado Javi Fernández F miércoles, 20 de junio de 2018 8:22 Confusión en el campo
    miércoles, 20 de junio de 2018 8:20