Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Outils > Toad
Toad Forum d'entraide sur Oracle Toad
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/10/2011, 17h16   #1
Membre du Club
 
Homme Brice
Ingénieur d'études en développements techniques
Inscription : novembre 2005
Messages : 190
Détails du profil
Informations personnelles :
Nom : Homme Brice
Âge : 40
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en développements techniques
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2005
Messages : 190
Points : 55
Points : 55
Envoyer un message via MSN à bpdelavega
Par défaut Réponse limitées à 500 lignes sous TOAD 9.6

Bonjour,
Je débute avec TOAD 9.6, je travaille très rarement sur Oracle, je fais une requête et je n'ai que les 500 dernières réponses, or je dois tout récupérer pour pouvoir faire un export vers Excel, auriez vous d'une idée de la marche à suivre, d'avance merci pour vos réponses
bpdelavega est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2011, 17h19   #2
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 686
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 686
Points : 10 431
Points : 10 431
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
500 lignes c'est la taille du buffer de Toad, mais si vous voulez exporter sous Excel c'est déjà dans l'outil :
  • Clic droit dans la zone des données, Save As
  • Export format : Excel file ou Excel instance (il faut avoir Excel ouvert)
Et rassurez-vous, ça exporte bien tous les résultats.
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2011, 17h42   #3
Membre du Club
 
Homme Brice
Ingénieur d'études en développements techniques
Inscription : novembre 2005
Messages : 190
Détails du profil
Informations personnelles :
Nom : Homme Brice
Âge : 40
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en développements techniques
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2005
Messages : 190
Points : 55
Points : 55
Envoyer un message via MSN à bpdelavega
Super merci, je vais le tester à l'instant, je vous fais un retour
bpdelavega est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2011, 18h18   #4
Membre du Club
 
Homme Brice
Ingénieur d'études en développements techniques
Inscription : novembre 2005
Messages : 190
Détails du profil
Informations personnelles :
Nom : Homme Brice
Âge : 40
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en développements techniques
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2005
Messages : 190
Points : 55
Points : 55
Envoyer un message via MSN à bpdelavega
je profite de votre gentillesse pour vous demander un aide sur la syntaxe, car je rencontre des difficultés :
Je veux adapter la requête pour obtenir les enregistrements depuis le 01/10/2010, voici la requête actuelle :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 
SELECT DISTINCT 
   (NAME.TITLE || ' ' || RESERVATION_NAME.SGUEST_FIRSTNAME || ' ' || RESERVATION_NAME.SGUEST_NAME) AS client_nom, 
   DECODE(LANGUAGE,
                'F', 'FRANCE',
                'E', 'ANGLETERRE'
                ) AS client_pays,
   DECODE(OPERA.RESERVATION_NAME.RESORT,
                'OPERA', 'Best Western Premier Opera Diamond',
                'BATIGN', 'Opera Batignolles Hotel'
                ) AS client_hotel,   
   TO_CHAR(TRUNC_ACTUAL_CHECK_IN_DATE,'DD/MM/YYYY') AS hotel_date_entree, 
   TO_CHAR(TRUNC_ACTUAL_CHECK_OUT_DATE,'DD/MM/YYYY') AS hotel_date_sortie,
   LOWER(PHONE_NUMBER) AS client_email,   
   RESORT_ORIGINS_OF_BOOKING.DESCRIPTION AS origine_reservation,
   TRUNC( SYSDATE - TO_DATE(TRUNC_ACTUAL_CHECK_OUT_DATE)) AS NB_JOURS
 
FROM OPERA.RESERVATION_NAME
 
JOIN OPERA.NAME ON RESERVATION_NAME.NAME_ID = NAME.NAME_ID 
JOIN OPERA.NAME_PHONE ON RESERVATION_NAME.NAME_ID = NAME_PHONE.NAME_ID 
JOIN OPERA.RESERVATION_SUMMARY ON RESERVATION_NAME.RESV_NAME_ID = RESERVATION_SUMMARY.EVENT_ID 
JOIN OPERA.RESORT_ORIGINS_OF_BOOKING ON (RESERVATION_SUMMARY.RESORT = RESORT_ORIGINS_OF_BOOKING.RESORT AND RESERVATION_SUMMARY.SOURCE_CODE = RESORT_ORIGINS_OF_BOOKING.SOURCE_CODE) 
 
WHERE RESV_STATUS = 'CHECKED OUT'
AND TRUNC( SYSDATE - TO_DATE(TRUNC_ACTUAL_CHECK_OUT_DATE)) > 0 
--AND TRUNC( SYSDATE - TO_DATE(TRUNC_ACTUAL_CHECK_OUT_DATE)) = 1
AND SGUEST_NAME IS NOT NULL
AND NAME_PHONE.PHONE_TYPE = 'EMAIL'
AND NAME_PHONE.PHONE_NUMBER IS NOT NULL
AND RESERVATION_SUMMARY.EVENT_TYPE = 'R'
 
ORDER BY CLIENT_HOTEL ASC, CLIENT_NOM ASC
bpdelavega est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2011, 18h57   #5
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 686
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 686
Points : 10 431
Points : 10 431
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Il faut rajouter quelque part le filtre suivant :
Code :
AND <votre_colonne_date> >= to_date('01/01/2010', 'dd/mm/yyyy')
Sinon la requête est améliorable.

Déclarez des alias de tables et utilisez-les pour toutes les colonnes.
Je pense que vous faites un to_date sur une colonne déjà au format date, c'est donc inutile. Peut-être est-ce un TRUNC que vous voulez faire ?
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2011, 09h06   #6
Membre du Club
 
Homme Brice
Ingénieur d'études en développements techniques
Inscription : novembre 2005
Messages : 190
Détails du profil
Informations personnelles :
Nom : Homme Brice
Âge : 40
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en développements techniques
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2005
Messages : 190
Points : 55
Points : 55
Envoyer un message via MSN à bpdelavega
Merci pour votre aide, quand vous dites améliorable cela signifie que la requête prend trop de ressource, elle n'est pas optimisée ?
Cela fait longtemps que je ne fais plus de requêtes, je travaillais sur Oracle il y a bien longtemps, maintenant je fais du développement WEB PHP/MySQL et surtout j'utilise des framework avec des requêtes déjà préparée
Du coup, j'ai perdu beaucoup de réflexes, pourriez-vous, s'il vous plait, m'aider à améliorer cette requête, cela me permettrait de me rafraîchir la mémoire et d’améliorer mon traitement. D'avance merci pour votre aide. Car cette requête est un traitement que je lance tous les jours, et je ne voudrais pas que cela affecte les conditions de travail de nos clients.
bpdelavega est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2011, 14h33   #7
Membre du Club
 
Homme Brice
Ingénieur d'études en développements techniques
Inscription : novembre 2005
Messages : 190
Détails du profil
Informations personnelles :
Nom : Homme Brice
Âge : 40
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en développements techniques
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2005
Messages : 190
Points : 55
Points : 55
Envoyer un message via MSN à bpdelavega
Par défaut Modification de ma requête

Voici la correction que j'ai faite et qui fonctionne très bien, après je ne sais pas ce que vaut en termes de Tuning SQL
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
SELECT DISTINCT (NAME.title || ' ' || reservation_name.sguest_firstname || ' '|| reservation_name.sguest_name) AS client_nom,
	DECODE (LANGUAGE, 'F', 'FRANCE','E', 'ANGLETERRE') AS client_pays,
	   (CASE
		   WHEN opera.reservation_name.resort = 'OPERA'
			  THEN 'Best Western Premier Opera Diamond'
		   WHEN opera.reservation_name.resort = 'BATIGN'
			  THEN 'Opera Batignolles Hotel'
		   WHEN opera.reservation_name.resort = 'PPN'
			  THEN 'Comfort et Quality Hotel Centre del Mon'
		END
   ) AS client_hotel,
   TO_CHAR (trunc_actual_check_in_date,'DD/MM/YYYY') AS hotel_date_entree,
   TO_CHAR (trunc_actual_check_out_date,'DD/MM/YYYY') AS hotel_date_sortie,
   LOWER (phone_number) AS client_email,
   TRUNC (SYSDATE - TO_DATE (trunc_actual_check_out_date)) AS nb_jours
FROM opera.reservation_name 
JOIN opera.NAME ON reservation_name.name_id = NAME.name_id
JOIN opera.name_phone ON reservation_name.name_id = name_phone.name_id
WHERE resv_status = 'CHECKED OUT'
AND TRUNC( SYSDATE - TO_DATE(TRUNC_ACTUAL_CHECK_OUT_DATE)) > 0 
AND REGEXP_LIKE (LOWER(phone_number), '^[a-zA-Z0-9\-_]+[a-zA-Z0-9\.\-_]*@[a-zA-Z0-9\-_]+\.[a-zA-Z\.\-_]{1,}[a-zA-Z\-_]+')
AND TRUNC_ACTUAL_CHECK_OUT_DATE >= to_date('01/10/2010', 'dd/mm/yyyy')
ORDER BY NB_JOURS DESC;
bpdelavega est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h40.


 
 
 
 
Partenaires

Hébergement Web