Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hola a todos,
estoy realizando una consulta directamente a la BD oracle donde armo un campo con varios datos concatenados los cuales guardo en primero en un qvd y luego genero un archivo csv delimitado por "|" de la siguiente manera:
InfoOracle:
load *;
SELECT
campo1||campo2||campo3 as REGISTRO
from
TABLAS
where
CONDICIONES
Store * from InfoOracle into infotest.qvd (qvd);
test:
LOAD Distinct
$(VAño) as Año,
$(VMes) as Mes,
REGISTRO
FROM [..\..\..\ Carga\Tablas BD\infotest.qvd](qvd);
STORE test [INFO - $(VPeriodoCorte).csv] (txt,delimiter is '|');
Cuando abro el archivo detecto que algunos registros contienen comillas al principio y al final del campo que figura como "REGISTRO" (que contiene varios campos concatenados).
Ejemplo del archivo generado donde el primer registro se genera bien y el segundo tiene las comillas que no corresponden:
Dicho archivo tiene miles de registros, pero solo unos pocos se general mal (es decir que tienen esas comillas).
Si muestro esa misma información en una tabla de Qlikview las comillas no se muestran y tampoco figuran si exporto esa tabla a un excel.
El problema está únicamente cuando genero el archivo csv.
Tengo otra manera de generar un csv o alguien sabe de que manera puedo solucionarlo?.
Gracias
Hola, normalmente las comillas las pone cuando el contenido del campo incluye el separador, es decir, que el campo registro ya incluye algún '|', por lo que tiene que poner las comillas para indicar que todo pertenece al mismo campo.
Hola Rubén,
gracias por tu respuesta, estuve chequeando varios casos que quedaron mal en ninguno de ellos existe el separador "|" dentro de los campos que conforman REGISTRO.
Creo que lo que está pasando es que al abrirlo en Excel como csv pone comillas cuando encuentra algún valor especial como una coma, punto y coma, dos puntos..., el demiliter le indica el caracter que quieres usar como separador para generar el txt, porque realmente lo que se genera es siempre un txt, no un csv, pero al poner csv en la extensión el SO lo trata como un csv.
Si lo abres con el bloc de notas podrás ver el archivo original tal como lo crea QV, Excel hace el resto al pensar que realmente es un csv, puedes comprobar que no interpreta | como separador, pone los valores en la columna A.
Hola Rubén,
probé abrirlo con Notepad++, notepad y me sigue incorporando las comillas en los mismos casos. Intenté modificar el separador y tampoco logro resolverlo.
Con este script:
InfoOracle:
load *, Registro & ',a' as Registro2, Año & ',b' as Registro3 Inline
[
Registro ,Año , Mes
sfse|sfes|svvsevsv ,2018 ,1
];
STORE InfoOracle into [INFO.csv] (txt,delimiter is '|');
Genera un txt con extensión csv que abierto con el bloc de notas solo entrecomilla el campo Registro y Registro2, que son los que tienen el delimitador en el contenido del campo.
Abierto en Excel solo entrecomilla el 2º, que tiene el delimitador del txt y un caracter especial.
Registro 3, que solo tiene un carácter especial pero no el delimitador, no lo entrecomilla.