diff --git a/rdbms/OcciStmt.cpp b/rdbms/OcciStmt.cpp
index 602b0fc7fcb4eac28cbd191e17c3acbf51458000..1306ceab62632d2c20bba91f5d9f24e535cc9abf 100644
--- a/rdbms/OcciStmt.cpp
+++ b/rdbms/OcciStmt.cpp
@@ -113,7 +113,7 @@ void OcciStmt::bindUint64(const std::string &paramName, const uint64_t paramValu
 //------------------------------------------------------------------------------
 void OcciStmt::bindOptionalUint64(const std::string &paramName, const optional<uint64_t> &paramValue) {
   try {
-    const unsigned paramIdx = m_paramNameToIdx.getIdx(paramName);
+    const unsigned paramIdx = getParamIdx(paramName);
     if(paramValue) {
       // Bind integer as a string in order to support 64-bit integers
       m_stmt->setString(paramIdx, std::to_string(paramValue.value()));
@@ -150,7 +150,7 @@ void OcciStmt::bindOptionalString(const std::string &paramName, const optional<s
         " An optional string parameter should either have a non-empty string value or no value at all."); 
     }
 
-    const unsigned paramIdx = m_paramNameToIdx.getIdx(paramName);
+    const unsigned paramIdx = getParamIdx(paramName);
     if(paramValue) {
       m_stmt->setString(paramIdx, paramValue.value());
     } else {
diff --git a/rdbms/SqliteStmt.cpp b/rdbms/SqliteStmt.cpp
index 99f257d462e70d2ccff566fb8c531c954abaf810..d270afe0d86df1d7490e8f3d457abb0e50421bc3 100644
--- a/rdbms/SqliteStmt.cpp
+++ b/rdbms/SqliteStmt.cpp
@@ -152,7 +152,7 @@ void SqliteStmt::bindUint64(const std::string &paramName, const uint64_t paramVa
 //------------------------------------------------------------------------------
 void SqliteStmt::bindOptionalUint64(const std::string &paramName, const optional<uint64_t> &paramValue) {
   try {
-    const unsigned int paramIdx = m_paramNameToIdx.getIdx(paramName);
+    const unsigned int paramIdx = getParamIdx(paramName);
     int bindRc = 0;
     if(paramValue) {
       bindRc = sqlite3_bind_int64(m_stmt, paramIdx, (sqlite3_int64) paramValue.value());
@@ -188,7 +188,7 @@ void SqliteStmt::bindOptionalString(const std::string &paramName, const optional
       throw exception::Exception(std::string("Optional string parameter ") + paramName + " is an empty string. "
         " An optional string parameter should either have a non-empty string value or no value at all.");
     }
-    const unsigned int paramIdx = m_paramNameToIdx.getIdx(paramName);
+    const unsigned int paramIdx = getParamIdx(paramName);
     int bindRc = 0;
     if(paramValue) {
       bindRc = sqlite3_bind_text(m_stmt, paramIdx, paramValue.value().c_str(), -1, SQLITE_TRANSIENT);
diff --git a/rdbms/Stmt.cpp b/rdbms/Stmt.cpp
index 83ed0aeb7f9fe9c6a8d3e4828bc329de08072017..00a4e4f17b2a98befb262422b31fe99db4694d7e 100644
--- a/rdbms/Stmt.cpp
+++ b/rdbms/Stmt.cpp
@@ -26,8 +26,8 @@ namespace rdbms {
 //------------------------------------------------------------------------------
 Stmt::Stmt(const std::string &sql, const AutocommitMode autocommitMode):
   m_sql(sql),
-  m_paramNameToIdx(sql),
-  m_autoCommitMode(autocommitMode) {
+  m_autoCommitMode(autocommitMode),
+  m_paramNameToIdx(sql) {
 }
 
 //------------------------------------------------------------------------------
@@ -43,6 +43,13 @@ const std::string &Stmt::getSql() const {
   return m_sql;
 }
 
+//------------------------------------------------------------------------------
+// getParamIdx
+//------------------------------------------------------------------------------
+uint32_t Stmt::getParamIdx(const std::string &paramName) const {
+  return m_paramNameToIdx.getIdx(paramName);
+}
+
 //------------------------------------------------------------------------------
 // getSqlForException
 //------------------------------------------------------------------------------
diff --git a/rdbms/Stmt.hpp b/rdbms/Stmt.hpp
index 3bbb90256b37d6f599b2f6c96d54bfa55322a004..fb65179c92224f6f79b24e1a8255e9fd4713c526 100644
--- a/rdbms/Stmt.hpp
+++ b/rdbms/Stmt.hpp
@@ -95,6 +95,14 @@ public:
    */
   const std::string &getSql() const;
 
+  /**
+   * Returns the index of the specified SQL parameter.
+   *
+   * @param paramName The name of the SQL parameter.
+   * @return The index of the SQL parameter.
+   */
+  uint32_t getParamIdx(const std::string &paramName) const;
+
   /**
    * Binds an SQL parameter.
    *
@@ -179,11 +187,6 @@ protected:
    */
   std::string m_sql;
 
-  /**
-   * Map from SQL parameter name to parameter index.
-   */
-  ParamNameToIdx m_paramNameToIdx;
-
   /**
    * The autocommit mode of the statement.
    */
@@ -206,6 +209,13 @@ protected:
    */
   std::string getSqlForException() const;
 
+private:
+
+  /**
+   * Map from SQL parameter name to parameter index.
+   */
+  ParamNameToIdx m_paramNameToIdx;
+
 }; // class Stmt
 
 } // namespace rdbms