Outil SQL qui peut utiliser des ensembles de résultats de requête comme tables temporaires pour une analyse plus approfondie et des opérations de définition?

dbza

Outil SQL qui peut utiliser des ensembles de résultats de requête comme tables temporaires pour une analyse plus approfondie et des opérations de définition?


Par exemple, disons que je dois effectuer des opérations de définition et des jointures sur les jeux de résultats ci-dessous à partir de 3 requêtes SQL différentes:

  • Je ne veux pas écrire une requête composite avec des sous-requêtes, ni utiliser des tables de base de données, des vues ou des CTE temporaires. En d’autres termes, pas de traitement sur le serveur de base de données mais sur la machine cliente.
  • Je ne pose pas de questions sur les générateurs de requêtes basés sur l’interface graphique comme SQLyog

Quelque chose qui permettrait une analyse plus rapide des données en utilisant des ensembles de données ventilés comme ci-dessous à partir d’une grande base de données. Cela pourrait être à peu près comme si vous pouviez joindre deux jeux de résultats à partir de deux requêtes distinctes dans le développeur Toad / SQL. (Ce que je fais maintenant pour y parvenir est de coller plusieurs ensembles de données de chacune de ces requêtes dans MS Excel et d’utiliser vlookup () et un filtrage supplémentaire, etc.)

Résultat de la requête SQL 1: (T1)

 Col1 Col2 A 1 B 2 

Résultat de la requête 2: (T2)

 Col3 Col4 1 # 2 * 

Résultat de la requête 3: (T3)

 Col5 1 3 

L’opération à effectuer sur T1, T2, T3 par le haut est:

  Select T1.col1,T2.col4 from T1,T2 where T1.col2=T2.col3 and T1.col2 in (Select T3.col5 from T3) 

(Il n’est pas nécessaire que l’outil génère du SQL comme ci-dessus pour le traiter au-dessus des jeux de résultats, le SQL ci-dessus sert uniquement à transmettre la logique que j’ai en tête.)

Le résultat requis est:

 Col1 Col4 1 # 

[ÉDITER]

Cela a déjà été demandé ici sur DBA.SE et a été migré par l’OP.

Franck Dernoncourt

Pourquoi ne pas utiliser des vues + un générateur de requêtes visuelles?

dbza

J’avais donné des exemples simples à titre d’illustration uniquement, les requêtes réelles seraient ad-hoc et complexes (résultats en quelques lignes de 100 000). La question se concentre sur les jeux de résultats localement après avoir été récupérés dans la base de données.

Vérace

Voir mon commentaire sur XE sur votre question DBA.SE – quelle utilité pour vous? Créez un lien et faites vos trucs localement dessus. Voir la réponse de P. Forstmann ici (sur les forums Oracle). BTW, j’utilise le nom Vérace sur DBA.SE.

Jan Doggen

De nombreux outils de reporting vous permettent de le faire (je m’en souviens à l’époque où je travaillais dans Business Objects , maintenant acheté par SAP). Ils vous permettent de définir une couche intermédiaire qui contient ce que vous décrivez. Pas exactement ad-hoc , mais si vous avez le module de conception assez rapide à assembler – avec la possibilité supplémentaire de stocker la conception intermédiaire.

Réponses


 Steve Barnes

À l’aide de trames de données pandas , vous pouvez exécuter une requête initiale (ou un ensemble de requêtes) pour remplir les trames de données, puis effectuer toutes vos jointures, manipulations, rapports, exportations, etc. hors ligne sur la machine cliente.

Mieux encore, vous pouvez créer un script qui, à la demande, effectuera toutes les actions ci-dessus afin de réexécuter votre processus avec de nouvelles données si nécessaire.

Il vaudra probablement la peine de lire la comparaison entre Pandas et la page SQL .

dbza

Impressionnant! On dirait que cela m’aiderait. Merci beaucoup!


 Vérace

Je vais continuer toute correspondance sur ce problème ici. Comme je l’ai suggéré, vous pouvez toujours utiliser XE avec les services hétérogènes d’Oracle, vous pouvez vous connecter à DB2 et MS SQL Server .

[ÉDITER]

Vous pouvez connecter SQL Developer à l’aide de JDBC. Vérifiez ici et ici (deux premiers résultats googler « JDBC et Oracle SQL Developer), et surtout ici (troisième résultat). Avoir » déconné « avec MySQL en utilisant SQL Developer – essayez-le.

Vérace

Depuis le premier lien vers DB2, j’ai donné « CREATE DATABASE LINK eetest_link CONNECT TO » user « IDENTIFIED BY » password « USING ‘eetest’; » – donc je pense que l’on peut supposer que oui, cela fonctionne quelque chose comme ça – essayez-le et contactez-nous s’il y a des problèmes. Vous n’êtes pas la première personne à vouloir vous connecter à différentes bases de données.

Vérace

Peut-être quelque chose comme « CREATE (Oracle) TABLE AS SELECT My_Stuff FROM DB2_Link …? Je ne me souviens pas du haut de ma tête – je n’ai pas de système en cours d’exécution ici!

dbza

Cela pourrait fonctionner si XE peut se lier à DB2 comme vous l’avez suggéré, mais ce n’est pas vraiment ce que je recherche – comme je l’avais mentionné dans la question, pas de tables ou de vues temporaires. Merci!

Vérace

Sélectionnez vos données dans une table Oracle « réelle » (c’est-à-dire permanente sur disque) – pas nécessairement temporaire.

 

#(une, #de, #et, #pour, Analyse, approfondie, comme, Définition, des, ensembles, opérations, Outil, peut, plus, qui, requête, résultats, SQL, tables, temporaires, utiliser

 

elle.fr

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *