IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Oracle Discussion :

Script update column is null [10gR2]


Sujet :

SQL Oracle

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2017
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2017
    Messages : 176
    Points : 58
    Points
    58
    Par défaut Script update column is null
    Bonjour,

    Je voudrais créer un script pour mettre à jour toutes les lignes d'une colonne ayant la valeur null et cela pour deux tables différentes.
    par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	Update ma_table
    		set ma_colonne = nouvelle_valeur
    		WHERE ma_colonne is null;
    1- Je ne sais pas si je mets directement le code sql dans un script shell ou bien je crée une procédure stockée et je l'appelle depuis le script shell.

    2- Je ne sais pas si c'est mieux d'utiliser des curseurs ou bien de faire un simple update.

    Merci.

  2. #2
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 460
    Points : 8 074
    Points
    8 074
    Par défaut
    Les intérêts essentiels d'une procédure stockée sont :
    1) la centralisation du code en base et la possibilité de l'exécuter pour tous les utilisateurs auxquels on donnera les droits
    2) une réduction des échanges entre le client et le serveur, avec le gain de performances correspondant

    Si votre requête est à usage unique, vous n'êtes pas concerné par le point 1.
    Et si votre procédure ne contenait que ladite requête, vous n'êtes pas concerné par le point 2 non plus car dans le cadre d'un UPDATE, il n'y a aucun échange de données entre le client et le serveur.

    Quant au curseur, il ne serait d'aucune utilité ici.
    Pourquoi fonctionner ligne par ligne quand vous pouvez tout traiter en une seule passe, et donc bien plus efficacement ?
    Consultant / formateur Oracle indépendant
    Certifié OCP 12c, 11g, 10g ; sécurité 11g

    Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2017
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2017
    Messages : 176
    Points : 58
    Points
    58
    Par défaut
    Merci beaucoup pour votre réponse.

    Et si le script est exécuté sur un serveur unix par une tierce personne et que celui-ci est amené à générer des logs pour chaque ligne traitée?

  4. #4
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Détaillez " ...logs pour chaque ligne traitée".

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2017
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2017
    Messages : 176
    Points : 58
    Points
    58
    Par défaut
    Utiliser UTL_FILE.PUT_LINE par exemple pour afficher le nombre de lignes qui ont été mises à jour, pour afficher des infos sur chaque ligne traitée, etc...

  6. #6
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Via spool vous pouvez récupérer les nombre des lignes. Quand à "infos de chaque ligne traitée" je me demande bien qu'est-ce que c'est.
    Bref, si vous y tenez vraiment de travailler ligne à ligne alors la bonne solution est de manipuler l'ensemble des enregistrements en PL/SQL en travaillant par lot. Mais la complexité du code à écrire dans ce cas doit être justifié par un vrai besoin.

  7. #7
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2017
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2017
    Messages : 176
    Points : 58
    Points
    58
    Par défaut
    Merci beaucoup.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 08/10/2007, 09h15
  2. PB: type d'une column = Type.NULL
    Par mickeydisn dans le forum JDBC
    Réponses: 3
    Dernier message: 06/02/2007, 14h01
  3. [MySQL] Exécution script UPDATE
    Par griese dans le forum PHP & Base de données
    Réponses: 30
    Dernier message: 09/01/2007, 15h13
  4. [PostGreSLQ] pb d'UPDATE avec valeur NULL
    Par mellie dans le forum Langage SQL
    Réponses: 3
    Dernier message: 06/03/2006, 10h03
  5. update column
    Par HichamK dans le forum Oracle
    Réponses: 4
    Dernier message: 23/01/2006, 17h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo