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 :

Probleme Sqlplus trimspool/trim ?


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2013
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Novembre 2013
    Messages : 159
    Par défaut Probleme Sqlplus trimspool/trim ?
    Hello les boys,

    J'essaie d'obtenir un affichage propre en effectuant ma requête sql et j'ai beau avoir tenté pas mal de choses ... le résultat est atroce !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    34
    35
    36
    37
    38
    39
    40
    41
    set term off
    set colsep ";"
    set heading OFF
    set pagesize 0
    set linesize 250
    set numwidth 8
    set tab off
    set trimspool on
    set verify off
    set heading off
    set space 0
    set echo off
    set feedback off
    set trimout off
    set termout off
    SET HEADSEP off
     
    /* accept spoolfile prompt 'Ouput file name ==> ' */
     
    spool &1
     
    define var_table = 'PLW_CODE_ARRIMAGE';
     
    /* Check bool sur la table NETWORK et TASK */
    SELECT
            TRIM(SEQ_ARRIMAGE) AS SEQ_ARRIMAGE,
            TRIM(NO_PA) AS NO_PA,
            TRIM(LOT_DEBUT) AS LOT_DEBUT,
            TRIM(TYPE_DEBUT) AS TYPE_DEBUT,
            TRIM(SEQUENCE_DEBUT) AS SEQUENCE_DEBUT
    .......
    FROM PLW_CODE_ARRIMAGE;
     
    spool off
     
    prompt ===  Generated file : &1
     
    set head on
    set echo on
     
    quit;

    Nom : affichage.png
Affichages : 3059
Taille : 13,7 Ko

    Une idée svp ?

  2. #2
    Membre Expert
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 2 005
    Par défaut
    Il faut redéfinir la taille de test colonnes.

    Par exemple pour une colonne NOM varchar2(50) mais qui ne fait pas plus de 20, met
    col NOM format A20

    Pour une colonne NUMBER(10) de nom SALAIRE qui fait que 6 de long met
    col SALAIRE format 999999

    Essaye aussi de mettre linesize 150 seulement, c'est une longueur standard sous SQL*Plus.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2013
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Novembre 2013
    Messages : 159
    Par défaut
    Merci pour ta réponse ! Oui linesize j'ai tenté plusieurs valeurs pour vérifier que l'erreur ne venait pas de la.

    La première colonne visible avec ..._PA correspond à un varchar 15 et pourtant j'ai un espace devant ...

    Pour décrire précisément le besoin que j'ai : je souhaite faire un SQL qui prend deux arguments le fichier et le nom de la table. Le script sera ensuite appelé dans un KSH ... Dans le code transmis j'ai mis en dur une table ainsi que TRIM() mais il ne s'agit pas du format cible que je souhaite obtenir.

    Si vous avez des idées ...

  4. #4
    Membre Expert
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 2 005
    Par défaut
    Je te conseille de repartir du tout tout début.

    Etape 1 : tu enlèves TOUS les paramètres renseignés avec SET en début de script

    Etape 2 : sous SQL*Plus fait un show all pour voir les valeurs de tes variables d'environnement; peut-être que certaines sont mal renseignées mais là, c'est à toi de voir

    Etape 3 : tu lances sous SQL*Plus un SELECT tout bête avec le nom de la première colonne sans TRIM et tu vois si le résultat est OK.
    Etape 3.5 S'il est OK, tu rajoutes TRIM et si c'est toujours OK tu ajoutes les autres colonnes une par une... : il faut y aller étape par étape.
    S'il est KO, il faut corriger l'erreur avant de passer à la colonne 2

    Etape 4 : une fois que sous SQL*Plus l'affichage est OK, tu fais un spool et ensuite tu affiches son contenu et on verra si c'est OK à nouveau.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2013
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Novembre 2013
    Messages : 159
    Par défaut
    Résultat du show all :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    appinfo is OFF and set to "SQL*Plus"
    arraysize 15
    autocommit OFF
    autoprint OFF
    autorecovery OFF
    autotrace OFF
    blockterminator "." (hex 2e)
    btitle OFF and is the first few characters of the next SELECT statement
    cmdsep OFF
    colinvisible OFF
    colsep " "
    compatibility version NATIVE
    concat "." (hex 2e)
    copycommit 0
    COPYTYPECHECK is ON
    define "&" (hex 26)
    describe DEPTH 1 LINENUM OFF INDENT ON
    echo OFF
    editfile "afiedt.buf"
    embedded OFF
    errorlogging is OFF
    escape OFF
    escchar OFF
    exitcommit ON
    FEEDBACK ON for 6 or more rows
    flagger OFF
    flush ON
    fullcolname OFF
    heading ON
    headsep "|" (hex 7c)
    history is OFF
    instance "toto"
    linesize 80
    lno 14
    loboffset 1
    lobprefetch 0
    logsource ""
    long 80
    longchunksize 80
    newpage 1
    null ""
    numformat ""
    numwidth 10
    pagesize 14
    PAUSE is OFF
    pno 0
    recsep WRAP
    recsepchar " " (hex 20)
    release 1202000100
    repfooter OFF and is NULL
    repheader OFF and is NULL
    rowprefetch 1
    securedcol is OFF
    serveroutput OFF
    shiftinout INVISIBLE
    showmode OFF
    spool OFF
    sqlblanklines OFF
    sqlcase MIXED
    sqlcode 0
    sqlcontinue "> "
    sqlnumber ON
    sqlpluscompatibility 12.2.0
    sqlprefix "#" (hex 23)
    sqlprompt "SQL> "
    sqlterminator ";" (hex 3b)
    statementcache is 0
    suffix "sql"
    tab ON
    termout ON
    timing OFF
    trimout ON
    trimspool OFF
    ttitle OFF and is the first few characters of the next SELECT statement
    underline "-" (hex 2d)
    USER is "ORA_CASH"
    verify ON
    wrap : lines will be wrapped
    xmloptimizationcheck OFF
    Etape 3 :

    L'affichage n'est pas correcte. En enlevant l'entête j'ai toujours les blancs correspondant à ma valeur 255 qui restent.

    Nom : print_dev.png
Affichages : 3011
Taille : 9,2 Ko
    Nom : print_dev2.png
Affichages : 3014
Taille : 23,7 Ko


    Je ne peux réduire la taille de ma colonne ne pouvant être sur que ma valeur sera inférieur à telle ou telle critère.
    Je ne peux pas faire de TRIM de FORMAT column sachant que je vous ai décris mon besoin.

  6. #6
    Membre Expert
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 2 005
    Par défaut
    Mais il y a quoi dans ce champ TYPE_DEBUT? Visiblement c'est entièrement vide...

    J'ai l'impression que ta table est renseignée n'importe comment par les programmes qui insèrent les données, c'est pour ça que tu es obligé de faire des TRIM?
    Le plus propre, mais pas le plus simple je pense, serait de voir les développeurs pour qu'ils revoient leur programme car là tu as un dépotoir de données et pas une base de données

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/04/2008, 13h35
  2. probleme avec sqlPLUS
    Par jib2b dans le forum Sql*Plus
    Réponses: 0
    Dernier message: 29/02/2008, 20h18
  3. Réponses: 3
    Dernier message: 12/09/2007, 10h52
  4. Probleme de connexion SQLPLUS
    Par llsn dans le forum Sql*Plus
    Réponses: 2
    Dernier message: 28/08/2006, 12h28
  5. Java Probleme avec line.trim().split("\t");
    Par benzh dans le forum Langage
    Réponses: 6
    Dernier message: 02/08/2006, 04h18

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