Guidelines for SQL in WFA
You must be aware of the guidelines for using SQL in OnCommand Workflow Automation (WFA) to write SQL queries for WFA.
SQL is used in the following places in WFA:
-
SQL queries to populate user inputs for selection
-
SQL queries for creating filters to filter objects of a specific dictionary entry type
-
Static data in tables in the playground database
-
A custom data source type of SQL type where the data has to be extracted from an external data source such as a custom configuration management database (CMDB).
-
SQL queries for reservation and verification scripts
Guidelines | Example |
---|---|
SQL reserved keywords must be in uppercase characters. |
SELECT vserver.name FROM cm_storage.vserver vserver |
Table and column names must be in lowercase characters. |
Table: aggregate Column: used_space_mb |
Separate words with an underscore (_) character. Spaces are not allowed. |
array_performance |
Table name is defined in singular. A table is a collection of one or more entries. |
“function”, not “functions” |
Use table aliases with meaningful names in SELECT queries. |
SELECT vserver.name FROM cm_storage.cluster cluster, cm_storage.vserver vserver WHERE vserver.cluster_id = cluster.id AND cluster.name = '${ClusterName}' AND vserver.type = 'cluster' ORDER BY vserver.name ASC |
If you have to refer to a filter input parameter or user input parameter in a filter query or user query, use the syntax as '${inputVariableName}.You can also use the syntax to refer to a command definition parameter in reservation scripts and verification scripts. |
SELECT volume.name AS Name, aggregate.name as Aggregate, volume.size_mb AS 'Total Size (MB)', voulme.used_size_mb AS 'Used Size (MB)', volume.space_guarantee AS 'Space Guarantee' FROM cm_storage.cluster, cm_storage.aggregate, cm_storage.vserver, cm_storage.volume WHERE cluster.id = vserver.cluster_id AND aggregate.id = volume.aggregate_id AND vserver.id = voulme.vserver_id AND vserver.name = '${VserverName}' AND cluster.name = '${ClusterName}' ORDER BY volume.name ASC |
Use comments for complex queries. Some of the supported comment styles in queries are as follows:
|
/* multi-line comment */ --line comment SELECT ip as ip, # comment till end of this line NAME as name FROM --end of line comment storage.array |