Prepared query

parameterized query with predefined SQL

A prepared query, also known as a prepared statement or parameterized query, is a SQL statement that is precompiled and stored in a database in a form that allows efficient execution multiple times with different parameters.

When a prepared query is used, the database server parses, compiles, and optimizes the SQL statement once and creates a prepared execution plan. This prepared execution plan is stored in memory or in the database server's cache, ready to be executed multiple times with different parameter values.


SQL should be a valid statement. It is possible to add parameters that can be used for passing values from variables. Use curly brackets { } to define input parameters.


select * from "mySchema"."users" where "id" = {id}

id - an input parameter that can be configured within the properties of the db connector node.

!Important. Ensure to enclose table, column, and schema names in double quotes; otherwise, any uppercase letters will be automatically converted to lowercase. SQL (assume id=1):

select * from mySchema.users where id = {id} 

will trigger an exception because it will be transformed into

select * from myschema.users where id = 1 

and myschema does not exist.

The schema name can be defined within the database URL. In this scenario, it can be omitted.

select * from "users" where "id" = {id}

Will lead to the same result as:

select * from "mySchema"."users" where "id" = {id}

Input parameters

The parameter name is indicated by the text enclosed within curly brackets { }. The name should consist only of letters, digits, and underscore characters, , and must start with a letter.

{myParam1_} - valid
{1myParam} - not valid
{_myParam} - not valid
{myParam@$#^%&*!-+=} - not valid 

The parameter type should be defined. Default type is: pdk.core.String

Possible types are:

Arrays are processed as lists of values with a comma as the delimiter.

select * from "users" where "id" in ({id})

id parameter type is pdk.core.Array<Integer> and contains values [1,2,3]. SQL will be transformed into:

select * from "users" where "id" in (1,2,3)

Last updated