Pas encore inscrit ? Creez un Overblog!

Créer mon blog
Pacman

Pacman

J'ai toujours rêvé de maîtriser la Force, et je m'entraine chaque jour. Mais je finis toujours par me lever et chercher la bière au frigo "physiquement". (Tiens, je devrais peut-être tenter de dresser un chien...)
Tags associés : journal intime, sgbd, sql, sql cosmetique

Ses blogs

Le blog de Pacman

Yet Another Stupid Oracle Blog
Pacman Pacman
Articles : 53
Depuis : 18/07/2009
Categorie : Lifestyle

Articles à découvrir

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) = (SELECT collect(rayon_ryn) FROM t_rayon) VILLE_ETP --------- MARSEILLE TOULOUSE Collect, à

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 va pas être jouable. Par contre si ça te dit, je te laisse saisir ta sélection, par exem

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 statistics SELECT count(*) FROM all_objects Statistics ----------------------------

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 et moi croyons, et dans lesquelles ma propre descendance devra croire : l'absurdité,
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 simple : c'est la liste des coups joués, ni plus ni moins. CREATE TABLE cs_mouv ( x num

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 test_ind AS SELECT level n, CASE WHEN level <= 100 then 1 ELSE 0 END flag FROM DUAL CONNECT B

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 donc ce que j'ai fait l'autre jour, et voilà le résultat : INSERT INTO MA_TABLE VALUES (...

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 as select 'a' id, 1 val from dual union all select 'b' id, 2 val from dual; create table test

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 : 1) Les données Robert, Marcel et Squelettor travaillent dans la même équipe. Voici l

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 loin que le 3ème étage". Cela dit, il y a des moments où on veut générer N lignes pou