Utilisation de DQL
Langage de requêtes de domaine qu’utilise le processus de création de requêtes de vue d’entreprise.
DQL correspond pour l’essentiel à ANSI SQL 9.2, avec toutefois quelques différences importantes.
Note : DQL ne prend en charge que les instructions SELECT.
Dans cette rubrique :
Avantages de DQL
L’élaboration de requêtes avec DQL présente les avantages ci-après.
DQL applique le masquage des données en fonction des niveaux de permission de l’utilisateur. | Les rapports sont générés en fonction des niveaux d’autorisation de l’utilisateur qui les génère. Les informations incluses dans une vue métier qui n’est pas disponible pour un utilisateur n’apparaissent dans aucun rapport créé par l’utilisateur. |
La requête DQL crée une abstraction de base de données utilisée comme base pour la vue métier. | Étant donné que la base de la vue est une abstraction de la base de données et non la base de données elle-même, vous n’avez pas besoin d’identifier les champs d’entité selon leurs noms réels. Par exemple, tous les champs relatifs à l’identification d’un objet apparaissent avec le suffixe « ID », tels que Defect ID, Cycle ID et Release ID. |
Les requêtes DQL fonctionnent sur les serveurs de bases de données Oracle et SQL. |
Ajouts à SQL
DQL fournit les options suivantes, qui ne sont pas disponibles en SQL ANSI :
-
Variables. Trois variables ont été ajoutées.
:me Renvoie les informations pertinentes pour l’utilisateur qui crée le rapport. Cela signifie que différents utilisateurs qui créent des rapports basés sur la même vue d’entreprise recevront des résultats différents.
La variable :me ressemble à ceci :
Copy codeSelect *
From defect
Where defect.detected_by = :me:current_project_name Renvoie des informations pertinentes pour le projet à partir duquel les rapports sont créés. :current_domain_name Renvoie les informations pertinentes pour le domaine à partir duquel le rapport est créé. - Sélectionnez Top. Cette option vous permet de limiter les résultats de la requête à un nombre défini d’éléments.
Fonctions prises en charge
Le tableau suivant énumère les fonctions DQL qui sont prises en charge par OpenText Application Quality Management. Les fonctions DQL sont converties en fonctions SQL correspondantes pour être utilisées dans la base de données. Le tableau présente les conversions des fonctions DQL vers MS SQL et Oracle. Pour plus de détails, reportez-vous à la documentation MS SQL et Oracle.
Agrégation
Fonction |
Signature |
Type de retour |
Description |
---|---|---|---|
count | count(expression) | integer | Renvoie le nombre de lignes dans une requête. |
count_big | count_big(expression) | integer (bigint) |
Renvoie le nombre de lignes dans une requête. La seule différence entre count et count_big est leur valeur de retour. Dans MS SQL, count_big renvoie toujours une valeur de type bigint, et count renvoie toujours une valeur de type int. Dans Oracle, la fonction est convertie en count. |
variance | variance(décimale) | décimale |
Renvoie la variance de l’expression. Dans MS SQL, la fonction est convertie en var. Dans Oracle, la fonction est codée comme round(variance(<decimal>), 14). |
var_pop | var_pop(expression) | décimale |
Renvoie la variance de population d’un ensemble de nombres après avoir éliminé les nombres nuls de l’ensemble. Dans MS SQL, la fonction est convertie en varp. Dans Oracle, la fonction est codée comme round(var_pop(<expression>), 14). |
stddev | stddev(decimal) | décimale |
Renvoie l’écart type d’un ensemble de nombres. Dans MS SQL, la fonction est convertie en stdev. Dans Oracle, la fonction est codée comme round(stddev(<decimal>), 14). |
stddev_pop | stddev_pop(expression) | décimale |
Calcule l’écart-type de la population et renvoie la racine carrée de la variance de la population. Dans MS SQL, la fonction est convertie en stdevp. Dans Oracle, la fonction est codée comme round(stddev_pop(<expression>), 14). |
avg | avg(expression) | décimale |
Renvoie la valeur moyenne d’une expression. Dans Oracle, la fonction est codée comme round(avg(<decimal>), 14). |
sum | sum(decimal) | décimale | Renvoie la valeur additionnée d’une expression. |
min | min(expression) | expression | Renvoie la valeur minimale d’une expression. |
max | max(expression) | expression | Renvoie la valeur maximale d’une expression. |
Manipulation des chaînes
Fonction |
Signature |
Type de retour |
Description |
---|---|---|---|
upper | upper(string) | string | Renvoie la chaîne de caractères donnée avec toutes les lettres converties en majuscules. |
lower | lower(string) | string | Renvoie la chaîne de caractères donnée avec toutes les lettres converties en minuscules. |
rtrim | rtrim(string) | string | Renvoie la chaîne de caractères donnée avec tous les espaces de queue supprimés du côté droit. |
ltrim | ltrim(String) | string | Renvoie la chaîne de caractères donnée avec tous les espaces de tête supprimés. |
replace | replace(string, string_to_replace, replacement_string) | string | Renvoie la chaîne donnée avec toutes les séquences de <string_to_replace> remplacées par <replacement_string>. |
substring | substring(string, int_start_position, int_length) | string |
Renvoie une sous-chaîne de la chaîne de caractères donnée.
Dans Oracle, la fonction est convertie en substr. |
length | length(string) | décimale |
Renvoie la longueur de la chaîne de caractères spécifiée. Dans MS SQL, la fonction est convertie en len. |
chr | chr(integer) | string |
Convertit un code ASCII int en un caractère. Dans MS SQL, la fonction est convertie en char. |
soundex | soundex(string) | string | Renvoie une représentation phonétique d’une chaîne de caractères. |
ascii | ascii(string) | integer | Renvoie la valeur du code ASCII du caractère le plus à gauche d’une expression de caractères. |
concat | concat(string1, string2) | string |
Concatène deux chaînes de caractères ensemble. Dans MS SQL, la fonction est convertie en +, et la fonction est codée en tant que <string1>+<string2>. |
leftstr | leftstr(string, integer) | string |
Renvoie la partie gauche d’une chaîne de caractères avec le nombre de caractères spécifié. Dans MS SQL, la fonction est convertie en left. Dans Oracle, la fonction est convertie en substr et est codée comme substr(<string>, 1,<integer>). |
lpad | lpad(string1, integer, string2) | string |
Retourne <string1>une séquence de caractères de longueur <integer>, avec un remplissage à gauche, avec la séquence de caractères dans le tableau suivant <string2>. Cette fonction est utile pour formater la sortie d’une requête. Dans MS SQL, la fonction est convertie en expression de remplissage à gauche, qui met en œuvre la logique ci-dessus. |
reverse | reverse(string) | string |
Renvoie l’inverse d’une valeur de type chaîne. Dans Oracle, la fonction est codée comme reverse(to_char(<string>)). |
rightstr | rightstr(string, integer) | string |
Renvoie la partie droite d’une chaîne de caractères avec le nombre de caractères spécifié. Dans MS SQL, la fonction est convertie en right. Dans Oracle, la fonction est convertie en substr avec l’expression de la partie droite, qui met en œuvre la logique ci-dessus. |
rpad | rpad(string1, integer, string2) | string |
Retourne <string1>, avec des caractères de longueur <integer> et un remplissage à droite avec <string2>répliqué autant de fois que nécessaire. Cette fonction est utile pour formater la sortie d’une requête. Dans MS SQL, la fonction est convertie enà left avec l’expression de right padding, ce qui met en œuvre la logique ci-dessus. |
stuff | stuff(string, integer, integer, string) | string |
Insère une chaîne dans une autre chaîne. Elle supprime une longueur spécifiée de caractères dans la première chaîne à la position de départ, puis insère la deuxième chaîne dans la première chaîne à la position de départ. Dans Oracle, la fonction stuff est convertie en une expression qui met en œuvre la logique ci-dessus. |
in_string | in_string(string1, string2, integer_start_location) | integer |
Renvoie l’emplacement de la sous-chaîne string1 dans string2, si elle existe. Sinon, il renvoie 0. La recherche commence à integer_start_location, qui commence à 1. Dans MS SQL, la fonction est convertie en charindex. Dans Oracle, la fonction est convertie en instr et est codée comme instr(<string2>,<string1>, <integer_start_location>). |
replicate | replicate(string, integer) | string |
Répète la valeur <string> le nombre de fois indiqué dans le paramètre <integer>. Dans Oracle, la fonction est convertie en rpad et est codée comme rpad(<string>, length(<string>*<integer>), <string>). |
Mathématiques
Fonction |
Signature |
Type de retour |
Description |
---|---|---|---|
sin | sin(decimal) | décimale |
Renvoie le sinus du paramètre decimal. Dans Oracle, la fonction est codée comme round(sin(<decimal>), 14). |
asin | asin(decimal) | décimale |
Renvoie l’arc sinus du paramètre decimal. L’argument doit être compris entre -1 et 1. Dans Oracle, la fonction est codée comme round(asin(<decimal>), 14). |
cos | cos(decimal) | décimale |
Renvoie le cosinus du paramètre decimal. In Oracle, the function is coded as round(cos(<decimal>), 14). |
acos | acos(decimal) | décimale |
Renvoie l’arc cosinus du paramètre decimal. L’argument doit être compris entre -1 et 1. Dans Oracle, la fonction est codée comme round(acos(<decimal>), 14). |
tan | tan(decimal) | décimale |
Renvoie la tangente du paramètre decimal. Dans Oracle, la fonction est codée comme round(tan(<decimal>), 14). |
atan | atan(decimal) | décimale |
Renvoie l’arc tangent du paramètre decimal. Dans Oracle, la fonction est codée comme round(atan(<decimal>), 14). |
atan2 | atan2(decimal1, decimal2) | décimale |
Renvoie l’angle, en radians, entre l’axe x positif et le rayon allant de l’origine au point (y, x), où x et y sont les valeurs de decimal1 et decimal2. Dans MS SQL, la fonction est convertie en atn2. Dans Oracle, la fonction est codée comme round(atan2(<decimal1>), 14). |
tanh | tanh(decimal) | décimale |
Renvoie la tangente hyperbolique du paramètre decimal. Dans MS SQL, la fonction est convertie en expression tanh, qui met en œuvre la logique ci-dessus. Dans Oracle, la fonction est codée comme round(tanh(<decimal>), 14). |
sqrt | sqrt(decimal) | décimale |
Renvoie la racine carrée des paramètres décimaux. Dans Oracle, la fonction est codée comme round(sqrt(<decimal>), 14). |
exp | exp(decimal) | décimale |
Renvoie e élevé à la puissance du paramètre decimal, où e = 2,71828183. Dans Oracle, la fonction est codée comme round(exp(<decimal>), 14). |
sign | sign(decimal) | décimale |
Renvoie une valeur indiquant le signe d’un nombre. Si le nombre est < 0, alors le sign renvoie -1. Si le nombre = 0, alors le sign renvoie 0. Si le nombre > 0, alors sign renvoie 1. Dans MS SQL, la fonction est convertie en expression de signe, qui met en œuvre la logique ci-dessus, et est codée comme CAST(sign(<decimal>) AS int). |
floor | floor(decimal) | integer | Renvoie le plus grand nombre entier inférieur ou égal à l’argument decimal spécifié. |
ln | ln(decimal) | décimale |
Renvoie le logarithme naturel de l’argument decimal. Dans MS SQL, la fonction est convertie en log. Dans Oracle, la fonction est codée comme round(ln(<decimal>), 14). |
abs | abs(decimal) | décimale | Renvoie la valeur absolue d’un nombre. |
round | round(decimal, integer) | décimale |
Renvoie les décimales arrondies aux nombres entiers à droite de la virgule. Le paramètre integer peut être négatif pour arrondir les chiffres à gauche du point décimal. En MS SQL, la fonction est codée comme CAST(round(<decimal>,<integer>) AS int) ou comme CAST(round(<decimal>,<integer>) AS float), selon que le nombre entier est évalué à zéro ou non. |
mod | mod(decimal1, decimal2) | décimale |
Renvoie le reste de decimal1 divisé par decimal2. Dans MS SQL, la fonction est convertie en % et est codée comme suit <decimal1>%<decimal2>. |
trunc_number | trunc_number(decimal, integer) | décimale |
Renvoie decimal tronquées à des décimales integer. Si integer est omis, alors decimal est tronquée à 0 place. Dans MS SQL, la fonction est convertie en expression de truncation, qui met en œuvre la logique ci-dessus. Dans Oracle, la fonction est convertie en trunc. |
str | str(decimal, integer1, integer2) | string |
Renvoie des données de type caractère converties à partir de données numériques. Dans Oracle, la fonction est convertie en expression de string construction, qui met en œuvre la logique ci-dessus. |
ceil | ceil(decimal) | décimale |
Renvoie le plus petit nombre entier supérieur ou égal au paramètre décimal. Dans MS SQL, la fonction est convertie en ceiling. |
Cast
Fonction |
Signature |
Type de retour |
Description |
---|---|---|---|
to_number | to_number(string) | décimale |
Convertit une chaîne de caractères en un nombre. En MS SQL, la fonction est codée comme CAST(<string>AS float). |
number_to_char | number_to_char(decimal) | string |
Convertit un nombre en une chaîne de caractères. En MS SQL, la fonction est codée comme CAST(<decimal>AS varchar(50)). Dans Oracle, la fonction est convertie en to_char. |
char_to_char | char_to_char(string) | string |
Convertit les données NCHAR, NVARCHAR2, CLOB ou NCLOB en jeu de caractères de la base de données. En MS SQL, la fonction est codée comme CAST(<string>AS varchar(50)). Dans Oracle, la fonction est convertie en to_char. |
datetime_to_char | datetime_to_char(expression) | string |
Convertit une date ou une heure en une chaîne de caractères. En MS SQL, la fonction est codée comme convert(varchar,<date>, 121). Dans Oracle, la fonction est convertie en to_char et est codée comme to_char(<date>, 'YYYY-MM-DD HH24:MI:SS:FF3'). |
Divers
Fonction |
Signature |
Type de retour |
Description |
---|---|---|---|
nullif | nullif(expression1, expression2) | expression | Compare l’expression1 et l’expression2. Si l’expression1 et l’expression2 sont égales, la fonction renvoie NULL. Sinon, il renvoie l’expression1. |
coalesce | coalesce() | expression | Retourne la première expression non nulle parmi ses arguments. Le type de données de la valeur retournée est le type de données du paramètre ayant la plus haute priorité de type de données. |
isnull | isnull(check_expression, replace_expression) | expression |
Substitue une valeur lorsqu’une valeur nulle est rencontrée. Si check_expression est nul, alors la fonction renvoie replace_expression. Dans Oracle, la fonction est convertie en nvl. |
Date
Fonction |
Signature |
Type de retour |
Description |
---|---|---|---|
currentdate | currentdate() | date |
Renvoie la date du jour. En MS SQL, la fonction est codée comme CAST(CAST(getdate() AS date) AS datetime). Dans Oracle, la fonction est codée comme to_date(to_char(sysdate)). |
dateadd | dateadd(integer, date) | date |
Ajoute des paramètres de jours à date :
En MS SQL, la fonction est codée comme dateadd(DAY, <int days>, <Date date>). Dans Oracle, la fonction est convertie en + et est codée comme suit <int days> + <Date date>. |
datediff | datediff(start_date, end_date) | integer |
Renvoie le nombre (nombre entier signé) de dates croisées entre start_date et end_date spécifiées. En MS SQL, la fonction est codée comme datediff(DAY,<date>,<date>). Dans Oracle, la fonction est convertie en - et est codée comme trunc(<date>-<date>, 0). |
get_time | get_time() | datetime |
Renvoie la date et l’heure actuelles. Dans MS SQL, la fonction est convertie en getdate et est codée comme convert(datetime, getdate(), 126). Dans Oracle, la fonction est convertie en LOCALTIMESTAMP. |
trunc_date | trunc_date(date, string_format) | date |
Retourne une date tronquée à une unité de mesure spécifique. string_format est l’unité de mesure à appliquer pour la troncature. Les formats suivants sont pris en charge : année, y, aa, aaaa, q, trimestre, mm, mois, j, jj, jour, hh, mi Dans MS SQL, la fonction est convertie en dateadd et est codée comme dateadd(<unquoted string_format>, datediff(<unquoted string_format>, 0,<date>), 0). Dans Oracle, la fonction est convertie en trunc et est codée comme trunc(<date>, <string_format>. |
to_date | to_date(string) | date |
Convertit une chaîne de caractères en date. En MS SQL, la fonction est codée comme CAST(<string>AS datetime). Dans Oracle, la fonction est codée comme to_date(<string>, 'YYYY-MM-DD'). |
timestamp_tz | timestamp_tz() | string |
Renvoie le fuseau horaire actuel du serveur. Dans MS SQL, la fonction est convertie en sysdatetimeoffset. Dans Oracle, la fonction est convertie en CURRENT_TIMESTAMP. Cette fonction n’est pas prise en charge par MS SQL Server 2005. |
from_tz | from_tz(date, string) | date |
Convertit une valeur d’horodatage (date) et un fuseau horaire (string) en un horodatage avec valeur de fuseau horaire. Dans MS SQL, la fonction est convertie en expressions d’horodatage et de zone, qui mettent en œuvre la logique ci-dessus. Cette fonction n’est pas prise en charge par MS SQL Server 2005. |
sysdatetimeoffset | sysdatetimeoffset() | datetime avec fuseau horaire |
Renvoie la date système, y compris les fractions de seconde, et le fuseau horaire du système sur lequel réside la base de données. Dans Oracle, la fonction est convertie en SYSTIMESTAMP. Cette fonction n’est pas prise en charge par MS SQL Server 2005. |
getyear | getyear(date) | integer |
Renvoie un nombre entier qui représente l’année de la date spécifiée. Dans MS SQL, la fonction est convertie en year. Dans Oracle, la fonction est convertie en to_char et est codée comme CAST(to_char(<date>, 'yyyy') AS number). |
getmonth | getmonth(date) | integer |
Renvoie un nombre entier qui représente le mois de la date spécifiée. Dans MS SQL, la fonction est convertie en month. Dans Oracle, la fonction est convertie en to_char et est codée comme CAST(to_char(<date>, 'mm') AS number). |
getday | getday(date) | integer |
Renvoie un nombre entier représentant le jour du mois de la date spécifiée. Dans MS SQL, la fonction est convertie en day. Dans Oracle, la fonction est convertie en to_char et est codée comme CAST(to_char(<date>, 'dd') AS number). |
datepart | datepart(string_datepart, date) | integer |
Renvoie un nombre entier qui représente string_datepart spécifiée de la date spécifiée. En MS SQL, la fonction est codée comme datepart(<unquoted string_datepart>,<date>). Dans Oracle, la fonction est convertie en expression datepart, qui met en œuvre la logique ci-dessus. |
datename | datename(string_datepart, date) | string |
Renvoie une chaîne de caractères qui représente string_datepart spécifiée de la date spécifiée. Les formats suivants sont pris en charge : aaaa, aa, année, q, trimestre, m, mois, j, jj, jour, hh, mi En MS SQL, la fonction est codée comme datename(<unquoted string_datepart>,<date>). Dans Oracle, la fonction est convertie en expression datename, qui met en œuvre la logique ci-dessus. |
Date spéciale
Note : Pour chaque fonction, la date demandée est renvoyée dans le format de date correspondant. Dans MS SQL, la date demandée au format aaaa-MM-jj est convertie en datetime. Dans Oracle, to_date(<requested date in jj-MMM-aa format>, DD-MON-YY)
Fonction |
Signature |
Type de retour |
Description |
---|---|---|---|
firstDayOfCurrentMonth | firstDayOfCurrentMonth() | date | Renvoie la date du premier jour du mois en cours. |
firstDayOfCurrentWeek | firstDayOfCurrentWeek() | date | Renvoie la date du premier jour de la semaine en cours. |
firstDayOfCurrentYear | firstDayOfCurrentYear() | date | Renvoie la date du premier jour de l’année en cours. |
firstDayOfNextMonth | firstDayOfNextMonth() | date | Renvoie la date du premier jour du mois suivant. |
firstDayOfNextWeek | firstDayOfNextWeek() | date | Renvoie la date du premier jour de la semaine suivante. |
firstDayOfNextYear | firstDayOfNextYear() | date | Renvoie la date du premier jour de l’année suivante. |
firstDayOfPreviousMonth | firstDayOfPreviousMonth() | date | Renvoie la date du premier jour du mois précédent. |
firstDayOfPreviousWeek | firstDayOfPreviousWeek() | date | Renvoie la date du premier jour de la semaine précédente. |
firstDayOfPreviousYear | firstDayOfPreviousYear() | date | Renvoie la date du premier jour de l’année précédente. |
lastDayOfCurrentMonth | lastDayOfCurrentMonth() | date | Renvoie la date du dernier jour du mois en cours. |
lastDayOfCurrentWeek | lastDayOfCurrentWeek() | date | Renvoie la date du dernier jour de la semaine en cours. |
lastDayOfCurrentYear | lastDayOfCurrentYear() | date | Renvoie la date du dernier jour de l’année en cours. |
lastDayOfNextMonth | lastDayOfNextMonth() | date | Renvoie la date du dernier jour du mois suivant. |
lastDayOfNextWeek | lastDayOfNextWeek() | date | Renvoie la date du dernier jour de la semaine suivante. |
lastDayOfNextYear | lastDayOfNextYear() | date | Renvoie la date du dernier jour de l’année suivante. |
lastDayOfPreviousMonth | lastDayOfPreviousMonth() | date | Renvoie la date du dernier jour du mois précédent. |
lastDayOfPreviousWeek | lastDayOfPreviousWeek() | date | Renvoie la date du dernier jour de la semaine précédente. |
lastDayOfPreviousYear | lastDayOfPreviousYear() | date | Renvoie la date du dernier jour de l’année précédente. |
Case
Fonction |
Signature |
Type de retour |
Description |
---|---|---|---|
decode | decode(expression, search, result [, search, result]... [, default] ) | expression |
Renvoie la fonctionnalité d’une instruction IF-THEN-ELSE. Compare l’expression à chaque valeur recherchée, une par une. Si l’expression est égale à une recherche, Oracle renvoie le résultat correspondant. Si aucune correspondance n’est trouvée, Oracle renvoie default. Si la valeur par défaut est omise, Oracle renvoie null. Dans MS SQL, la fonction est convertie en expression case-when-else, qui met en œuvre la logique ci-dessus. |
greatest | greatest() | expression |
Retourne le plus grand de la liste des paramètres. Dans MS SQL, la fonction est convertie en l’expression greatest, qui met en œuvre la logique ci-dessus. |
least | least() | expression |
Renvoie le plus petit de la liste des paramètres. Dans MS SQL, la fonction est convertie en l’expression least, qui met en œuvre la logique ci-dessus. |