Bonjour à tous,
je tiens a dire d'abord que je suis patissier reconverti en teckos exploitation de base
Sinon j'ai beau chercher partout je ne trouve pas comment renseigner par un select une variable d'environnement comme le set linesize !!! Remarquez même au taf je n'ai trouvé personne pour me dire çà.
Je detaille un peu :
au taf dans le cadre d'export de table en fichier texte, on fixe la valeur du linesize "a la main" dans chaque script (lancé sous unix avec sqlplus sur oracle 10.2 g)
J'arrive "déjà" à récupérer dans une variable la longueur de ma ligne avec ce select dans du pl/sql:
Alors après j'essaye de faire un
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 select sum(nvl(dataprecision,datalength) as MA_VARIABLE from ALL_TAB_COLUMNS where owner = 'NOM_DU_OWNER' and TABLE_NAME = 'NOM_TABLE'
Et bien ca marche pas bien du tout
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 EXECUTE IMMEDIATE ('SET LINESIZE ' || MA_VARIABLE')!
J'ai un message d'erreur mais je suis à la maison et je n'ai pas accès à distance pour vous dire lequel.
Pourtant si je lance un script sous unix avec
et que mon script contient
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2sqlplus user/pwd @mon_script.sql ma_variable
Et ben là çà marche bien
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 show linesize set linesize ma_variable show linesize
Donc je me dis que ca doit être possible de renseigner mon linesize directement avec le résultat d'un select affecté à une variable.
Je tiens à préciser même s'il y a des fautes de frappe ou de syntaxe ici dans mon message, au boulot ca marche bien quand je fais du pl/sql. je n'ai juste pas le script en question sous les yeux !
Est ce qu'un gourou peut me dire s'il est possible de renseigner par "variable" ou select une variable d'environnement ? Et si oui comment ?
Merci d'avance à tous et un grand bravo pour le site dont je me suis inspiré fréquemment.
D.
Partager