Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

applyColStyleToCelltrue
heading0
columnTypess,s,s,s
multiplefalse
columnAttributesstyle="background:#e5e7ea;font-weight:bold,,style="background:#e5e7ea;font-weight:bold,
enableSortingfalse

...

Syntax

...

sql(datasourceName, sqlstring, [...])

...

Package

...

sql

...

Alias

...

Pkg Usage

...

sql(datasourceName, sqlstring, [...])

Description

Excerpt
hiddentrue
Executes the SQL phrase over the defined datasource.

Executes the SQL phrase over the defined datasource. For selects returning multiple rows, it concatenates the values (for instance you select 2 values and the select returns 4 rows, you will have 2*4 = 8 values). For updates, it returns the update count.

Parameters

...

applyColStyleToCelltrue
columnTypess,s,s,s
heading0
multiplefalse
enableSortingfalse

...

Parameter name

...

Type

...

Required

...

Description

...

datasourceName

...

String

...

Yes

...

Datasource name or JNDI name. For Jira database, this is set to "jdbc/JiraDS" by default.

...

sqlstring

...

String

...

Yes

...

SQL string.

Return Type

String []

Examples

Example 1

Code Block
languagejs
string [] results = sql("datasourceName", "select project_id from project_lookaside where project_code='" + project + "'");
//Note: this example is open to SQL injection if 'project' is not the standard issue project (derived) but a variable supplied by user. Take care.

Example 2

Code Block
languagejs
string [] results = sql("datasourceName", "select project_id from project_lookaside where project_code=?", project);
//this is better. No sql injection possible.

Example 3

It is tedious to iterate over a result in its flat form. The better way is to do it like this:

Code Block
languagejs
struct Person {
  string fName;
  string lName;
  number age;
}
Person [] results = sql ("datasourceName", "SELECT fName, lName, age FROM person WHERE group_member = 'Y'");
//checks to see if there are results there are skipped for brevity, but
//now you can iterate over and use the dot notation, and 'age' is really a number.
string firstResult = results[0].fName + " " + results[0].lName + " " + results[0].age;

Note

To configure the data source, check the SQL data sources configuration chapter.

See also

array_routines
Filter by label (Content by label)
showLabelsfalse
max25
showSpacefalse
cqllabel = "system_routine" and space = currentSpace ( )
labels
Include Page
SIL:sql
SIL:sql