diff --git a/pom.xml b/pom.xml index 8b5616f..f986dda 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.github.clagomess mod-plsql - 1.0.1 + 1.0.2 9.4.19.v20190610 diff --git a/src/main/java/com/github/clagomess/modplsql/jdbc/Database.java b/src/main/java/com/github/clagomess/modplsql/jdbc/Database.java index 9ced5d4..ea711c4 100644 --- a/src/main/java/com/github/clagomess/modplsql/jdbc/Database.java +++ b/src/main/java/com/github/clagomess/modplsql/jdbc/Database.java @@ -32,6 +32,8 @@ public static void init(ConfigDto dto) throws SQLException { } public static String runPl(String plName, Map param) throws SQLException { + int idx; + // fill parans param.putAll(configDto.getParamsAsMap()); @@ -45,10 +47,10 @@ public static String runPl(String plName, Map param) throws SQLE sql.append(String.format(" NUM_ENTRIES := %s;\n", param.size())); - int idx = 1; + idx = 1; for (Map.Entry entry : param.entrySet()) { - sql.append(String.format(" NAME_ARRAY(%s) := '%s';\n", idx, entry.getKey())); - sql.append(String.format(" VALUE_ARRAY(%s) := '%s';\n", idx, escape(entry.getValue()))); + sql.append(String.format(" NAME_ARRAY(%s) := ?; -- '%s'\n", idx, entry.getKey())); + sql.append(String.format(" VALUE_ARRAY(%s) := ?; -- '%s'\n", idx, escape(entry.getValue()))); idx++; } @@ -63,9 +65,17 @@ public static String runPl(String plName, Map param) throws SQLE log.info("QUERY:\n{}", sql.toString()); - stmt.executeUpdate(sql.toString()); + PreparedStatement pstmt = conn.prepareStatement(sql.toString()); + idx = 1; + for (Map.Entry entry : param.entrySet()) { + pstmt.setString(idx, entry.getKey()); + idx++; + pstmt.setString(idx, entry.getValue()); + idx++; + } + + pstmt.execute(); - log.info("GET RESULT"); return getResult(); }