[英]Why do I get an SyntaxErrorException while executing query on DB2?
[英]Why do I get \N when executing INTO OUTFILE query?
我正在使用Java連接到MySQL數據庫。 我正在執行此查詢:
String query =
"SELECT * FROM TT2 " +
"INNER JOIN " +
"`Language Pref` " +
"ON tt2.msisdn = `language pref`.MDN " +
"INTO OUTFILE 'c:/test12226.csv' " +
"FIELDS TERMINATED BY ',' " +
"ENCLOSED BY '\"' " +
"LINES TERMINATED BY '\n'";
我正在使用executeQuery(query)執行此查詢。
生成的CSV文件非常完美,除了最后一列。 在名為Language Pref
的原始表中,最后一列具有一些null或空單元格。 在CSV文件中,無論原始表格語言偏好中的這些空單元格在哪里,我都會得到“ \\ N”而不是應該的空單元格。
我該如何糾正?
如果要在字符串中使用'\\'字符,則需要輸入'\\\\'。
例:
System.out.print("The newline char \\n makes a new line: \n");
因此,在您的示例中,最后一行應為:
"LINES TERMINATED BY '\\n'";
字符串\\ N用於表示空值。 因此,這是正確的答案。
\\ n完全不同,那就是換行符。
嗯,在行尾的,\\n
代表最后一列中的空值。 所以一切都很好。
您可以使用MySQL IFNULL函數: ifnull(fieldname, '')
避免這種情況。
這將放置''
而不是NULL,因此您將在輸出文件中得到空字符串。 唯一的問題是,您必須為每個列分別指定它。
注意:“ \\ N”似乎僅在使用Excel打開時出現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.