diff --git a/appointment-import/src/main/java/smash/appointment/parse/AppointmentSqlExporter.java b/appointment-import/src/main/java/smash/appointment/parse/AppointmentSqlExporter.java
index 2e1b93eabf281abcbd2ef7817fca83d88ce7e0c6..821649a550fc287c0659d2cd852c2cc1fad71fe3 100644
--- a/appointment-import/src/main/java/smash/appointment/parse/AppointmentSqlExporter.java
+++ b/appointment-import/src/main/java/smash/appointment/parse/AppointmentSqlExporter.java
@@ -1,6 +1,6 @@
 package smash.appointment.parse;
 
-public class AppointmentSqlExporter {
+public class AppointmentSqlExporter extends SqlExporter{
 
 	public String toSql(AppointmentEntry appointment, boolean isFinished) {
 		StringBuilder result = new StringBuilder("");
@@ -21,13 +21,4 @@ public class AppointmentSqlExporter {
 		return result.toString();
 	}
 
-	private String getStringVal(String arg) {
-		if (arg == null) {
-			return "null";
-		} else if (arg.isEmpty()) {
-			return "''";
-		} else {
-			return "'" + arg + "'";
-		}
-	}
 }
diff --git a/appointment-import/src/main/java/smash/appointment/parse/SqlExporter.java b/appointment-import/src/main/java/smash/appointment/parse/SqlExporter.java
new file mode 100644
index 0000000000000000000000000000000000000000..a5c19bb25f2b4a06d5d88b9cedcce94ae89d028b
--- /dev/null
+++ b/appointment-import/src/main/java/smash/appointment/parse/SqlExporter.java
@@ -0,0 +1,52 @@
+package smash.appointment.parse;
+
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+
+public class SqlExporter {
+
+	private static final SimpleDateFormat DATE_FORMATTER = new SimpleDateFormat("yyyy-MM-dd");
+
+	public SqlExporter() {
+		super();
+	}
+
+	protected boolean isBefore(AppointmentEntry entry, Calendar minDate) {
+		String entryDate = entry.getDay();
+		String beforeDate = DATE_FORMATTER.format(minDate.getTime());
+		if (entryDate.compareTo(beforeDate) < 0) {
+			return true;
+		} else {
+			return false;
+		}
+	}
+
+	protected String getStringVal(String arg) {
+		if (arg == null) {
+			return "null";
+		} else if (arg.isEmpty()) {
+			return "''";
+		} else {
+			return "'" + arg.replace("'", "''") + "'";
+		}
+	}
+
+	protected String getIntVal(String diagnosisYear) {
+		if (diagnosisYear == null || diagnosisYear.trim().isEmpty()) {
+			return "0";
+		} else {
+			return diagnosisYear;
+		}
+	}
+
+	protected String getDateVal(String arg) {
+		if (arg == null) {
+			return "null";
+		} else if (arg.isEmpty()) {
+			return "null";
+		} else {
+			return "'" + arg + "'";
+		}
+	}
+
+}
\ No newline at end of file
diff --git a/appointment-import/src/main/java/smash/appointment/parse/SubjectSqlExporter.java b/appointment-import/src/main/java/smash/appointment/parse/SubjectSqlExporter.java
index 4d7750cf21e243e00cd9d66bd9ae3d39a068d29e..192668438a36fcf6237de3904cb4e813ea81e25c 100644
--- a/appointment-import/src/main/java/smash/appointment/parse/SubjectSqlExporter.java
+++ b/appointment-import/src/main/java/smash/appointment/parse/SubjectSqlExporter.java
@@ -1,6 +1,6 @@
 package smash.appointment.parse;
 
-public class SubjectSqlExporter {
+public class SubjectSqlExporter extends SqlExporter{
 
 	public String toSql(Subject subject) {
 		StringBuilder result = new StringBuilder("");
@@ -61,30 +61,4 @@ public class SubjectSqlExporter {
 		return result.toString();
 	}
 
-	private String getIntVal(String diagnosisYear) {
-		if (diagnosisYear == null || diagnosisYear.trim().isEmpty()) {
-			return "0";
-		} else {
-			return diagnosisYear;
-		}
-	}
-
-	private String getStringVal(String arg) {
-		if (arg == null) {
-			return "null";
-		} else if (arg.isEmpty()) {
-			return "''";
-		} else {
-			return "'" + arg + "'";
-		}
-	}
-	private String getDateVal(String arg) {
-		if (arg == null) {
-			return "null";
-		} else if (arg.isEmpty()) {
-			return "null";
-		} else {
-			return "'" + arg + "'";
-		}
-	}
 }
diff --git a/appointment-import/src/main/java/smash/appointment/parse/VisitSqlExporter.java b/appointment-import/src/main/java/smash/appointment/parse/VisitSqlExporter.java
index 6bd9dbe347c0386f451e3009f5f8eb07d17c8b6f..16077d37622b97edd5c407abebc6e4344112a3b9 100644
--- a/appointment-import/src/main/java/smash/appointment/parse/VisitSqlExporter.java
+++ b/appointment-import/src/main/java/smash/appointment/parse/VisitSqlExporter.java
@@ -1,13 +1,10 @@
 package smash.appointment.parse;
 
 import java.text.ParseException;
-import java.text.SimpleDateFormat;
 import java.util.Calendar;
 
-public class VisitSqlExporter {
+public class VisitSqlExporter extends SqlExporter {
 	AppointmentSqlExporter appointmentSqlExporter = new AppointmentSqlExporter(); 
-	private static final SimpleDateFormat DATE_FORMATTER = new SimpleDateFormat("yyyy-MM-dd");
-
 	public String toSql(Visit visit, boolean isFinished) throws ParseException {
 		StringBuilder result = new StringBuilder("");
 
@@ -32,24 +29,4 @@ public class VisitSqlExporter {
 
 		return result.toString();
 	}
-	
-	private boolean isBefore(AppointmentEntry entry, Calendar minDate) {
-		String entryDate = entry.getDay();
-		String beforeDate = DATE_FORMATTER.format(minDate.getTime());
-		if (entryDate.compareTo(beforeDate) < 0) {
-			return true;
-		} else {
-			return false;
-		}
-	}
-
-	private String getStringVal(String arg) {
-		if (arg == null) {
-			return "null";
-		} else if (arg.isEmpty()) {
-			return "''";
-		} else {
-			return "'" + arg + "'";
-		}
-	}
 }