Overblog Tous les blogs Top blogs Lifestyle
Suivre ce blog Administration + Créer mon blog
MENU

Le blog de Pacman

Yet Another Stupid Oracle Blog

Publicité

My SQL*Plus Chessboard

My SQL*Plus Chessboard

Nouvelle année, nouvelles résolutions. La première : coder un échiquier pour jouer sous SQL*Plus. J'ai posté le script complet ici : http://pacmann.over-blog.com/pages/my-sql-plus-chessboard-8844899.html 1) Le modèle de données Le modèle de données est...

Lire la suite
Publicité

CONNECT BY SYS_GUID() ??

Dans l'exemple type des row generators (par exemple ici ), on utilise parfois une construction étrange qui est "CONNECT BY level <= N". C'est certes étrange et abusé, mais ça se conçoit : "connecte moi avec n'importe quoi et récursivement, mais pas plus...

Lire la suite

Relational division, with COLLECT

Pour faire suite à mon article précédent , je vais quand même lâcher une solution viable, spécifique à Oracle : SELECT ville_etp FROM t_entrepot WHERE rayon_ryn IN (SELECT rayon_ryn FROM t_rayon) GROUP BY ville_etp HAVING collect(DISTINCT rayon_ryn) =...

Lire la suite

Bitand relational division

Ma grand-mère me disait toujours, "Pacman, n'oublie jamais le côté artistique du SQL, ni le côté obscur de la force". Et là, force est de constater que depuis un moment, je m'y crois trop : j'ai oublié les valeurs essentielles dans lesquelles mes ancêtres...

Lire la suite
Publicité

Autotrace statistics for PL/SQL

L'un des moyens d'étudier l'exécution d'une requête SQL, c'est l'autotrace. L'autotrace s'appuie sur les statistiques mesurées sur la session, pour en sortir un différentiel des grandeurs en question avant / après exécution de la requête. set autot traceonly...

Lire la suite

What are we actually waiting for ?

Quand on veut savoir pourquoi une procédure rame, on peut par exemple la tracer. "alter session set events 10046 trace name context forever, level 8" est en ce sens un outil efficace, car il permet de déterminer ce qui a fait attendre l'exécution. C'est...

Lire la suite

Indexing few values using 11g virtual column

J'avais lu, il y a très longtemps de cela, une astuce de l'oncle Tom pour indexer uniquement quelques valeurs très sélectives d'une colonne. Typiquement un flag ou statut de traitement. 1) FBI is watching you La vieille méthode avant 11G : CREATE TABLE...

Lire la suite

column NOT ambiguously defined

Il y a des fois, on agit avant de penser. Au moment même où je validais ma requête, j'attendais un "ORA-00918: column ambiguously defined". Mais ce n'est pas arrivé. 1) Les données de test Précision : on est en version 10.2.0.4.0 create table testeuh...

Lire la suite
Publicité

Aggregating intervals

Comment rassembler des intervalles qui se chevauchent ? Dans ma jeunesse, j'ai vu (et proposé) des solutions tirées par les cheveux. Et l'autre jour sur OTN, j'ai trouvé la méthode de FrankKulash particulièrement élégante. Petit article hommage pour lui...

Lire la suite

Choosing the worse string to rows method

L'utilisateur : "Salut, je voudrais un filtre à sélection multiple sur les pays pour mon rapport XYZ... idéalement avec des cases à cocher" Notez que ce n'est pas un rapport XXX, on fait pas ça chez nous. Moi : "Désolé, notre framework est pourri, ça...

Lire la suite