# SQR

SQR (Hyperion SQR Production Reporting, Part of OBIEE) is a programming language designed for generating reports from database management systems. The name is an abbreviation of Structured Query Reporter, which suggests its relationship to SQL (Structured Query Language). Any SQL statement can be embedded in an SQR program.

## History

In the early 80's SQR was a 'free' add-on to Gupta's SQLBase. At the time SQLBase was the only relational database that ran on IBM PCs (x86) machines. SQR was written by Israel Stern in Cleveland, Ohio, probably around 1984 or 1985.
SQ Software created SQR in the mid 1980s. It had a marketing agreement with D & N Systems, which changed its name to SQL Solutions and was later acquired by Sybase Inc in the early 1990s. To avoid competing directly with Oracle Corporation, Sybase had a marketing and development agreement with MITI for the Oracle database compatible versions of SQR. MITI acquired the full rights to SQR in the mid-1990s. MITI changed its name to SQRiBE Technologies in 1997. Brio Technology acquired SQRiBE in August, 1999. Brio Technology later changed its name to Brio Software. Brio licensed its source code to PeopleSoft Inc. sometime around 2000. Hyperion Solutions Corporation acquired Brio Software in October, 2003. Oracle Corporation acquired PeopleSoft in December, 2004. In March 2007, Oracle Corporation acquired Hyperion Solutions.

## SQR-related products

* Oracle: Hyperion SQR Production Reporting - System 9 (Release 9.3.1, 2008);
* Oracle: Hyperion SQR Production Reporting - System 11 (Release 11.1.2, 2010);
* Oracle: PeopleSoft Enterprise Tools & Technology (PeopleTools, Release 8.52, 2011)

## General components

* SQR Server
* SQR Viewer
* SQR Print
* SQR Execute
* SQR Workbench for Windows; SQR Developer

## Features

SQR is notable for its database and printing functions. It can embed any SQL statement almost anywhere in a program. One configuration of SQR can access multidimensional databases such as Essbase. It can combine database reads with print instructions, flexibly format data and page breaks, and print variable fonts, sizes, and colors. SQR contains a graph generation command that offers dozens of parameters for adjusting content and appearance.

## Syntax

SQR has four scalar data types. The first three are numeric (variables begin with “#”), character string (variables begin with “$”), and date (variables begin with “$”, same as with character string variables.). Date variables must be declared, to be distinguished from character string variables. Numeric variables may be of more specific types: integer, floating point,...). Database column variables begin with “&”. The values of database columns are set only by a SQL “select” statement; no other command can change their values.
SQR has an array data structure. An array has one or more fields, each of one of the available types. Each field may have multiple occurrences, giving SQR the equivalent of two-dimensional arrays. SQR has commands that manipulate multiple items within a single array.
SQR has four control structures. The first three are if-else-end, while-end, and evaluate. The fourth is the embedded SQL “select” statement, which allows SQR statements to be executed for each row of data in a loop.
SQR has commands to open, read, write, append, and close computer files. File input and output is sequential and record-oriented only; random access is not supported.