J'utilise COPY INTO
pour insérer en bloc des données dans MonetDB. Le csv que je copie à partir de quelques caractères spéciaux comme \
dans certains champs de chaîne et il a cassé l'insertion. L'erreur que je suis arrivé est:MonetDB - COPY Dans une insertion en bloc avec un caractère spécial
Failed to import table line 1 field 11 'clob' expected in 'data here'
et quand je remplacerai \
avec /
il fonctionne très bien, je pense que le problème lié à Java, car \
est en utilisant comme caractère d'échappement, mais je ne suis pas sûr!
ceci est la commande I utilisé pour la charge en vrac:
COPY INTO line : copy into dbtest.dbo.table3 from '/home/etltest/out.csv' using delimiters ';','\n','"';
et ceci est une ligne d'échantillon:
"452475";"0047748";"002";"2014-01-01 00:16:00.000";"2";"2014-01-01 00:16:16.090";"1";"1";"0";"testfile.xml";"~/uploads/Su/F0047748\2014\1";"3d67502e-94ed-4e3d";"2014-01-01 00:15:25.283"
je trouve un travail autour qui utilisent la fonction REPLACE
dans le SQL pour remplacer \
avec /
mais c'est trop lourde fonction de traitement lors de la manipulation des millions de lignes
Pourquoi est-ce ng et est-il de toute façon plutôt que de remplacer le \
?
Pourriez-vous donner un exemple minimal avec certaines de vos données et la ligne COPY INTO que vous avez utilisée? Il devrait être possible de contourner cela. –
J'utilise cette ligne COPY INTO: copiez dans dhpo.dbo.submissiontransactions3 depuis '/home/etltest/out.csv' en utilisant les délimiteurs ';', '\ n', '"'; –
et la ligne d'exemple ::: :: "452475"; "0047748"; "002"; "2014-01-01 00: 16: 00.000"; "2"; "2014-01-01 00: 16: 16.090"; "1"; "1 ";" 0 ";" testfile.xml ";" ~/uploads/Su/F0047748 \ 2014 \ 1 ";" 3d67502e-94ed-4e3d ";" 2014-01-01 00: 15: 25.283 " –