0

Oracle ドライバーがデフォルトで行末文字「\n」をエスケープされた文字列「\\n」にエスケープし、印刷時に「\n」が表示される理由を見つけようとしています。また、印刷する前に「\\n」を「\n」に置き換えるだけでなく、エレガントな方法で処理する方法についていくつか提案をしたいと思います。

追加情報:
- Oracle ドライバー: ojdbc6.jar
- Java 1.6.0_18 および 1.7.0_45

例:
- DB "column1" データ = line1\nline2\nline3

java.sql.PreparedStatement stmt = conn.prepareStatement("SELECT column1 FROM TABLE1");  
java.sql.ResultSet rs = stmt.executeQuery();  
while (rs.next()) {  
   rs.getString(1); // it returns line1\\nline2\\nline3 
}

どんな助けにも感謝します、
乾杯

4

1 に答える 1

2

SQL*Plus からの出力に \n が表示され、実際に新しい行が開始され\nない場合は、実際の改行ではなく、2 つの文字 " " がデータベースに格納されています。

http://www.unix.com/unix-advanced-expert-users/56212-sqlplus-output-new-line-character.htmlを参照してください。質問者はデータベース内の実際の改行を削除したいと考えています。

于 2014-03-17T16:24:46.470 に答える