diff --git a/backend/framework/src/main/java/org/jumpserver/chen/framework/console/dataview/DataView.java b/backend/framework/src/main/java/org/jumpserver/chen/framework/console/dataview/DataView.java index 53b33ee..8a3e774 100644 --- a/backend/framework/src/main/java/org/jumpserver/chen/framework/console/dataview/DataView.java +++ b/backend/framework/src/main/java/org/jumpserver/chen/framework/console/dataview/DataView.java @@ -14,6 +14,7 @@ import org.jumpserver.chen.framework.session.SessionManager; import org.jumpserver.chen.framework.ws.io.PacketIO; +import java.io.BufferedWriter; import java.io.IOException; import java.nio.file.Files; import java.sql.SQLException; @@ -125,6 +126,15 @@ private void fullData(SQLQueryResult result) { } } + private static void writeString(BufferedWriter writer, Object object) throws IOException { + var str = object.toString(); + + if (str.contains(",")) { + str = "\"" + str + "\""; + } + writer.write(str); + } + public void export(String scope) throws SQLException { var session = SessionManager.getCurrentSession(); @@ -144,7 +154,7 @@ public void export(String scope) throws SQLException { if (scope.equals("current")) { for (Field field : this.data.getFields()) { - writer.write(field.getName()); + writeString(writer, field.getName()); writer.write(","); } writer.newLine(); @@ -155,7 +165,7 @@ public void export(String scope) throws SQLException { writer.write("NULL"); writer.write(","); } else { - writer.write(row.get(field.getName()).toString()); + writeString(writer, row.get(field.getName())); writer.write(","); } } diff --git a/backend/modules/src/main/java/org.jumpserver.chen.modules/postgresql/PostgresqlActuator.java b/backend/modules/src/main/java/org.jumpserver.chen.modules/postgresql/PostgresqlActuator.java index bcdb659..663041d 100644 --- a/backend/modules/src/main/java/org.jumpserver.chen.modules/postgresql/PostgresqlActuator.java +++ b/backend/modules/src/main/java/org.jumpserver.chen.modules/postgresql/PostgresqlActuator.java @@ -33,12 +33,12 @@ public List getSchemas() throws SQLException { @Override public void changeSchema(String schema) throws SQLException { - this.execute(SQL.of("SET SEARCH_PATH TO ?;", schema)); + this.execute(SQL.of("SET SEARCH_PATH TO '?';", schema)); } @Override public SQLExecutePlan createPlan(String schema, String table, SQLQueryParams sqlQueryParams) throws SQLException { - var sql = SQL.of("select * from ?.?", schema, table); + var sql = SQL.of("select * from \"?\".\"?\"", schema, table); return this.createPlan(sql, sqlQueryParams); } }