---
name: "stag-selectall_xml"
section: "1p"
platform: "linux"
package: "libdbix-dbstag-perl"
version: "0.12-4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/stag-selectall_xml"
---

# stag-selectall\_xml(1p)

Query all elements from database with an XML output

## NAME

stag-selectall\_xml - Query all elements from database with an XML output

## SYNOPSIS

```
  stag-selectall_xml [-d <dbi>] [-f file of sql] [-nesting|n <nesting>] SQL
```

## DESCRIPTION

This script will query a database using either SQL provided by the script user, or using an SQL templates; the query results will be turned into XML using the DBIx::DBStag module. The nesting of the XML can be controlled by the DBStag SQL extension "USE NESTING..."

### EXAMPLES

```
  stag-selectall_xml -d "dbi:Pg:dbname=mydb;host=localhost"\
        "SELECT * FROM a NATURAL JOIN b"
```

### TEMPLATES

A parameterized SQL template (canned query) can be used instead of specifying the full SQL

For example:

```
  stag-selectall_xml -d genedb /genedb-gene gene_symbol=Adh
```

Or:

```
  stag-selectall_xml -d genedb /genedb-gene Adh
```

Or:

```
  stag-selectall_xml -d genedb /genedb-gene gene_symbol@=Adh,dpp,bam,indy
```

A template is indicated by the syntactic shorthand of using a slash to precede the template name; in this case the template is called **genedb-gene**. the -t option can also be used.

All the remaining arguments are passed in as SQL template parameters. They can be passed in as either name=value pairs, or as a simple list of arguments which get passed into the template in order

To use templates, you should have the environment variable **DBSTAG\_TEMPLATE\_DIRS** set. See **DBIx::DBStag** for details.

### LISTING AVAILABLE TEMPLATES FOR A DB

```
   stag-selectall_xml -d mydb -h
```

### LISTING VARIABLES FOR A TEMPLATE

```
   stag-selectall_xml /genedb-gene -h
```

## ENVIRONMENT VARIABLES

- DBSTAG\_DBIMAP\_FILE

  A file containing configuration details for local databases

- DBSTAG\_TEMPLATE\_DIRS

  list of directories (separated by **:**s) to be searched when templates are requested

## COMMAND LINE ARGUMENTS

- \-h\|help

  shows this page if no other arguments are given

  if a template is specified, gives template details

  if a db is specified, lists templates for that db

  use in conjunction with -v for full descriptions

- \-d\|dbname DBNAME

  this is either a full DBI locator string (eg **dbi:Pg:dbname=mydb;host=localhost**) or it can also be a shortened "nickname", which is then looked up in the file pointed at by the environment variable **DBSTAG\_DBIMAP\_FILE**

- \-u\|user USER

  database user identity

- \-p\|password PASS

  database password

- \-f\|file SQLFILE

  this is a path to a file containing SQL that will be executed, as an alternative to writing the SQL on the command line

- \-n\|nesting NESTING-EXPRESSIONS

  a bracketed expression indicating how to the resulting objects/XML should be nested. See DBIx::DBStag for details.

- \-t\|template TEMPLATE-NAME

  the name of a template; see above

- \-wh\|where WHERE-CLAUSE

  used to override the WHERE clause of the query; useful for combining with templates

  You can append to an existing where clause by using the prefix **+**

- \-s\|select SELECT-COLS

  used to override the SELECT clause of the query; useful for combining with templates

- \-rows

  sometimes it is preferable to return the results as a table rather than xml or a similar nested structure. specifying -rows will fetch a table, one line per row, and columns separated by tabs

- \-pre SQL

  a piece of SQL is that is executed immediately before the main query; e.g.:

  ```
    -pre "SET search_path=myschema,public"
  ```

- \-o\|out FILE

  a file to output the results to

- \-w\|writer WRITER

  writer class; can be any perl class, or one of these

  - xml \[default\]

    - sxpr

    lisp S-Expressions

  - itext

    indented text

- \-color

  shows results in color (sxpr and itext only)

- \-show

  will show the parse of the SQL statement
