diff --git a/sbroad-core/src/frontend/sql.rs b/sbroad-core/src/frontend/sql.rs
index 1ee55053262d0b5f7a31ea5146e6bcde4dc48355..bb5cd6f798ac549cd1b2c2536520711c50cc7fab 100644
--- a/sbroad-core/src/frontend/sql.rs
+++ b/sbroad-core/src/frontend/sql.rs
@@ -270,15 +270,15 @@ fn parse_create_proc(ast: &AbstractSyntaxTree, node: &ParseNode) -> Result<Ddl,
 fn parse_proc_with_optional_params(
     ast: &AbstractSyntaxTree,
     node: &ParseNode,
-) -> Result<(String, Vec<ParamDef>), SbroadError> {
+) -> Result<(String, Option<Vec<ParamDef>>), SbroadError> {
     let proc_name_id = node.children.first().expect("Expected to get Proc name");
     let proc_name = parse_identifier(ast, *proc_name_id)?;
 
     let params = if let Some(params_node_id) = node.children.get(1) {
         let params_node = ast.nodes.get_node(*params_node_id)?;
-        parse_proc_params(ast, params_node)?
+        Some(parse_proc_params(ast, params_node)?)
     } else {
-        Vec::new()
+        None
     };
 
     Ok((proc_name, params))
diff --git a/sbroad-core/src/frontend/sql/query.pest b/sbroad-core/src/frontend/sql/query.pest
index 33cd277485c0eb9a0141ae5bbebbf8f9ef897e3b..ba399ce5e3d05e8d7cbe5094ff57d979d5a9e0ee 100644
--- a/sbroad-core/src/frontend/sql/query.pest
+++ b/sbroad-core/src/frontend/sql/query.pest
@@ -78,7 +78,7 @@ DDL = _{ CreateTable | DropTable | CreateProc | DropProc | RenameProc }
         ~ ((^"as" ~ "$$" ~ ProcBody ~ "$$") | (^"begin" ~ "atomic" ~ ProcBody ~ "end"))
         ~ TimeoutOption?
     }
-        ProcParams = { "(" ~ ColumnDefType ~ ("," ~ ColumnDefType)* ~ ")" }
+        ProcParams = { "(" ~ (ColumnDefType ~ ("," ~ ColumnDefType)*)? ~ ")" }
         ProcLanguage = { SQL }
             SQL = { ^"sql" }
         ProcBody = { (Insert | Update | Delete) }
diff --git a/sbroad-core/src/ir/ddl.rs b/sbroad-core/src/ir/ddl.rs
index c16d76378c85c04e1f17a0ac5d69be3c64e512b8..06c34717a0d735fee90d2a32fef5bc943f492022 100644
--- a/sbroad-core/src/ir/ddl.rs
+++ b/sbroad-core/src/ir/ddl.rs
@@ -59,7 +59,7 @@ pub enum Ddl {
     },
     DropProc {
         name: String,
-        params: Vec<ParamDef>,
+        params: Option<Vec<ParamDef>>,
         timeout: Decimal,
     },
     RenameRoutine {