|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre actif
![]() Inscription : mai 2004 Messages : 725 ![]() |
Bonjour,
J'ai un script qui doit updater les tables RADIOLOGie et DOCUMENT. Les commandes sql s'executent bien depuis mon client SQL Toad. En revanche depuis mon script il ne se passe rien. C'est a dire que le process d'update a l'air de se faire mais ne finit jamais. Ca hangs. Pourquoi ca lag comme cela ? Qu'est ce qui bloque mon application ? Dans les logs il n' y a pas de message d'erreur. Il faut faire Ctrl +C pour tuer le process d'update. Code :
|
||
|
|
00
|
|
|
#2 |
|
Membre actif
![]() Inscription : mai 2004 Messages : 725 ![]() |
MErci de ta réponse,
En faite la fonction s'appelle FUNCTION UPDATE_RADIO. J'ai juste raccourci le nom. Désolé pour la confusion. Sinon je vois pas ou est l'erreur. |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Consultant en Business Intelligence Inscription : avril 2011 Messages : 7 ![]() |
Mais il me semble que tu dois faire une procedure pour faire ce que tu veux.
Une fonction qui retourne rien, ce n'est plus une fonction... Ajoute à minima un RETURN 1 à la fin du script de ta fonction au mieux utilise une procédure plutôt qu'une fonction pour faire ce que tu veux. |
|
|
00
|
|
|
#4 | |||
|
Membre actif
![]() Inscription : mai 2004 Messages : 725 ![]() |
Merci pour ta réponse rapide !
Actuellement j'ai enlevé la fonction mais le problème reste le même. Voici le nouveau script. je suis un peu paumé car la fonction Sql s'execute tres bien depuis mon client sql Toad ! C'est tres bizarre que la commande sql ne se termine jamais UNIQUEMENT depuis le script! Code :
Citation:
|
|||
|
|
00
|
|
|
#5 |
|
Membre chevronné
![]() O. JolySupport Inscription : décembre 2010 Messages : 287 ![]() |
Vous testez sous TOAD ... C'est bien mais c'est MAL
![]() Avez vous terminé votre transaction sur la table depuis TOAD (fais un commit ou un rollback ? ) Sinon, votre requête shell attendra indéfiniment que les verrous posés par la session d'update testée sous TOAD soient relâchés . Pour être certain de ce que vous faites n'utilisez ni TOAD ni SQVDEVELOPPER ni aucun outil autre que SQLPLUS et votre clavier pour tester et limitez vous à une seule session. |
|
10
|
|
|
#6 |
|
Membre actif
![]() Inscription : mai 2004 Messages : 725 ![]() |
Merci ojo77,
Excellente reponse ! C'etait cela le probleme |
|
|
00
|
|
|
#7 | ||||||
|
Membre confirmé
![]() Ahmed AANGOURDBA Etudes Oracle Inscription : janvier 2010 Messages : 123 ![]() |
Prenez le reflex de vérifier sur quel évènement est en train d 'attendre la session qui semble ramer.
Vous pouvez facilement checker ça en regardant la colonne EVENT de V$SESSION. Dans votre cas vous auriez vu que la session attendait sur un lock transactionnel (TX). Exemple: Dans session1: Code :
Code :
Dans une autre fenêtre je vérifie sur quel évènement ma session est en attente: Code :
La colonne BLOCKING_SESSION vous donne même la session qui a le lock.
__________________
Mon blog Oracle: http://ahmedaangour.blogspot.com/ |
||||||
|
10
|
Copyright © 2000-2012 - www.developpez.com