SQL Database Safe Operation
Provides a safe way to build parameterised SQL statements which help avoid SQL injection
See the table below for examples of paramaterised queries which can differ per database type:
| Database | Placeholder | Example | 
|---|---|---|
| PostgreSQL | $1,$2, … | SELECT * FROM users WHERE id = $1 | 
| Oracle | :1,:2, … | SELECT * FROM users WHERE id = :1 | 
| MySQL | ? | SELECT * FROM users WHERE id = ? | 
| MSSQL | @p1,@p2, … | SELECT * FROM users WHERE id = @p1 | 
- 
PostgreSQL uses numbered placeholders, indicated with a dollar sign and an integer (e.g., $1,$2, etc.). These placeholders are used sequentially according to their position in the statement.
- 
Oracle uses numbered placeholders similar to PostgreSQL but with a colon instead of a dollar sign (e.g., :1,:2, etc.). These placeholders are used sequentially as well.
- 
MySQL uses the question mark ?as placeholders for prepared statements. Each?is replaced with the corresponding parameter in the order they are passed to the statement.
- 
MSSQL uses named placeholders, which are typically indicated by @followed by a name (e.g.,@p1,@p2, etc.). The names are arbitrary and do not have to be sequential, but they should match the names used in the statement when passing the parameters.
The examples show a simple SELECT statement to retrieve user records from a users table where the id column matches a specified parameter.
| Returns | 
|---|
| Data Structure | 
Parameters
| Parameter | Parameter | Valid Blocks | Required | 
|---|---|---|---|
| Set an Override Name | Select this to enable setting the data structure item name statically or dynamically | Boolean Block Group | No | 
| Override Name | The override name of this item. Use this to replace the inherited name with a custom name. Expose it on the tree to set it dynamically. | Text Block Group | No | 
| Attributes | Metadata values for this block. Used in XML and multipart/form-data. | Text Block Group | No | 
| Query Template | SQL query template to be executed | Text Block Group | No | 
| Arguments | A list of arguments to be plugged into the query, in order of appearance or value - see docs for how to access them ($1 for Postgres or ? for MySQL etc.) | Any Data Type Block Group | No |