Étiquette : SQL

[SQL] Rechercher du texte dans un BLOB

[SQL] Rechercher du texte dans un BLOB

En SQL il est possible de rechercher du texte dans une colonne de type BLOB. Attention que cette méthode s’applique à la base de données Oracle. On utilise des méthodes internes qui permettent de convertir le terme cherché en données brutes et effectuer une recherche de caractères dans la colonne.

Poursuivre la lecture « [SQL] Rechercher du texte dans un BLOB »

[SQL] L’opérateur (+) d’Oracle

[SQL] L’opérateur (+) d’Oracle

Je pensais avoir vu beaucoup de choses mais n’ayant pas beaucoup travaillé avec Oracle ces dernières années (en fait, pour être honnête : pas du tout), je n’avais jamais rencontré cette syntaxe qui peut paraitre étrange la toute première fois… Que fait cet opérateur plus dans les conditions des jointures ? Perturbant… Cela implique de se renseigner un peu.

Poursuivre la lecture « [SQL] L’opérateur (+) d’Oracle »

[SQL] Concaténer en une seule chaine par ligne

[SQL] Concaténer en une seule chaine par ligne

Il existe, en MySQL, une fonction qui s’appelle GROUP_CONCAT et qui permet de concaténer – d’agréger – plusieurs éléments récupérés depuis une seule table en vue d’obtenir une seule chaine de caractères, par ligne de résultat.

Cela permet, par exemple, de récupérer les informations d’un livre, avec les auteurs séparés par des « , », et ce en une seule ligne de résultat. L’exemple repris dans la documentation de MySQL permet d’afficher le nom des étudiants avec leurs résultats aux différents tests.

Poursuivre la lecture « [SQL] Concaténer en une seule chaine par ligne »

[.NET] Accès à DB2 UDB iSeries + DataGridView

[.NET] Accès à DB2 UDB iSeries + DataGridView

On retrouve dans .NET les mêmes possibilités qu’en Java afin de se connecter à une base de données DB2 UDB sur un AS/400. En effet, lorsqu’on installe IBM i Access sur le PC, un kit de développement est inclus. Dedans on retrouve les assemblages nécessaires pour développer en .NET. Dans le menu démarrer vous devriez retrouver, dans le dossier IBM i, l’aide « Boite à outils de programmation« .

Poursuivre la lecture « [.NET] Accès à DB2 UDB iSeries + DataGridView »

[SQL] Convertir une colonne Date/Heure

[SQL] Convertir une colonne Date/Heure

Dans SQL Server, il est possible de convertir en date courte ou en chaine de caractères une colonne de type DATETIME. On peut utiliser la fonction CONVERT() ou encore la fonction CAST(). Dans cet exemple, nous utilisons la première qui prend en paramètre le type de données de destination ainsi que sa longueur (facultative), l’expression à convertir et enfin le style qui spécifie comment doit être traduite l’expression.

SELECT CONVERT(VARCHAR(10), [ma_colonne], 112) 
FROM table

La requête va renvoyer des dates au format ISO « AAAAMMJJ » soit l’année, le mois et le jour. Si on regarde la documentation, c’est grâce à la valeur 112 spécifiée pour le style que l’on obtient ce résultat. On peut donc facilement personnaliser la valeur retournée par la requête. Cela peut également être très pratique dans une condition.

[SQL] Mémo – Modifier le type d’une colonne

[SQL] Mémo – Modifier le type d’une colonne

Pour modifier le type d’une colonne dans une table DB2/400, vous pouvez utiliser la syntaxe ALTER TABLE … ALTER COLUMN. Il faudra cependant spécifier une clause supplémentaire : SET DATA TYPE. Cela vous permettra de changer la taille par exemple, ou bien passer d’un entier sur 4 octets à un entier sur 8. Exemple :

ALTER TABLE 'biblio.table' ALTER COLUMN email 
SET DATA TYPE varchar(50);

Dans cet exemple nous modifions la colonne qui contient l’e-mail en indiquant qu’on souhaite une chaine de caractères à taille variable d’un maximum de 50 caractères. Dans SQL Server, cela donnerait quelque chose comme ceci :

ALTER TABLE 'schema.table' ALTER COLUMN email varchar(50);

Et dans Oracle ou même MySQL :

ALTER TABLE 'schema.table' MODIFIY COLUMN email varchar(50);

Bon développement !

[SQL] 80040e57 : Arithmetic Overflow SQL Server

[SQL] 80040e57 : Arithmetic Overflow SQL Server

Lorsque vous effectuez une insertion dans une colonne avec une valeur numérique trop grande ou lorsque vous effectuez par exemple une somme impliquant une ou plusieurs colonnes numérique dont le résultat dépasse le type imposé (par exemple, le résultat obtenu dépasse l’entier), vous obtenez l’exception 80040e57 avec par exemple le message d’erreur suivant : “Arithmetic overflow error converting expression to data type int”.

Poursuivre la lecture « [SQL] 80040e57 : Arithmetic Overflow SQL Server »

[SQL] Mémo – Dates dans DB2 UDB for iSeries

[SQL] Mémo – Dates dans DB2 UDB for iSeries

Sur l’AS/400, lorsqu’on utilise des champs de type date, il faut parfois utiliser certaines fonctions de conversion ou du moins utiliser une chaine de caractères d’un format spécifique. Il existe aussi un tas de fonctions qui permettent par exemple de récupérer le jour de la semaine, le libellé du mois, ou bien une représentation sous forme d’entier.

Poursuivre la lecture « [SQL] Mémo – Dates dans DB2 UDB for iSeries »

[SQL] Réaliser des “upserts” sur DB2/400

[SQL] Réaliser des “upserts” sur DB2/400

Beaucoup de SGBD proposent des requêtes plutôt simples pour réaliser ce qu’on appelle couramment des upserts (ou encore « insert-or-update« ). Cela permet donc d’effectuer une mise à jour si l’insertion échoue. Dans DB2/400, il faut utiliser une requête “MERGE INTO”.

Poursuivre la lecture « [SQL] Réaliser des “upserts” sur DB2/400 »