|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||||
|
Membre éprouvé
![]() Inscription : mai 2002 Messages : 535 ![]() |
Savez vous s'il existe un moyen simple pour déposer le contenu d'un record dans une variable PL/SQL / ORACLE
JE vous explique : J'ai un record (Test) et une variable (V_1) Le But etant de metre tous "Test" Dans "V1" Code :
existe t'il un moyen simple pour mettre le contenu de mon record dans ma variable V_1 (Autre Que : Code :
(La concaténation des champs de Test (C1 , C2 , C3 , C4) Merci de vos réponses
__________________
Signé : Capitaine Jean-Luc Picard |
||||
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() ![]() Inscription : avril 2002 Messages : 3 339 ![]() |
Merci de poster dans le fon forum ;-)
|
|
|
00
|
|
|
#3 |
![]() ![]() ![]() Inscription : mai 2003 Messages : 6 530 ![]() |
Nom M'ssieur. Il faut le coder à la main.
|
|
|
00
|
|
|
#4 |
|
Membre éprouvé
![]() Inscription : mai 2002 Messages : 535 ![]() |
J'ai parlé d'un Record !!! Mais n'existe t'il pas d'autre type qui pourait répondre à ma demmande (Copié une structure de données (type varchar2)) dans une variable (type varchar2) ??????
__________________
Signé : Capitaine Jean-Luc Picard |
|
|
00
|
|
|
#5 | ||
|
Membre éprouvé
![]() Inscription : mai 2003 Messages : 412 ![]() |
Bah en fait SheikYerbouti à raison si tu veux juste avoir le contenu de ton record dans ta variable va falloir le faire à la main.
Par contre si tu veux avoir une object toto qui contiennent tout plein de record du meme type alors utilise une table PL/SQL Code :
|
||
|
|
00
|
|
|
#6 | ||||
|
Membre éprouvé
![]() Inscription : mai 2002 Messages : 535 ![]() |
J'ai eu un déclic
En déclarant l'ensemble des champs en char avec "1 blanc" par défaut puis en terminant avec la concaténation : c'est OK Code :
Code :
V_1 := Test ; Merci à vous tous pour vos réponses Cordialement @Thierry
__________________
Signé : Capitaine Jean-Luc Picard |
||||
|
|
00
|
|
|
#7 |
|
Membre du Club
![]() Inscription : novembre 2002 Messages : 64 ![]() |
Bonjour,
Tout comme argoet je pense que c'est un truc qui manque, c'est trés pénalisant pour fabriquer des fichiers à destination de gros système par exemple. |
|
|
00
|
|
|
#8 |
|
Membre éprouvé
![]() Inscription : mai 2003 Messages : 412 ![]() |
Moi ce que je comprends pas trop c'est votre question.
Si vous pouviez etre plus précis sur ce que vous souhaitez faire et obtenir ça m'aiderait grandement à vous donner une solution adaptée. |
|
|
00
|
|
|
#9 | ||||||
|
Membre du Club
![]() Inscription : novembre 2002 Messages : 64 ![]() |
J'explique :
je dois créer un fichier repris sur gros système en cobol dont voici la structure : Code :
Pour écrire un enregistrement de ce fichier j'aimerais pouvoir faire Code :
Code :
|
||||||
|
|
00
|
|
|
#10 |
|
Membre éprouvé
![]() Inscription : mai 2002 Messages : 535 ![]() |
Y a t'il un moyen simple de mettre le contenu d'un ensemble de variables caractères (structurées en elle (un record par exemple) dans une variable Le but etant de générer une chaine de caractère correspondant à la concaténation de l'ensemble des variables apartenant à la structure de donnée (Like en "C") 8) 8) Un truc comme : Variable := Structure (En "C" c'est finger in the noise et en "C"obol (Lire "C"au bol)
__________________
Signé : Capitaine Jean-Luc Picard |
|
|
00
|
|
|
#11 |
![]() ![]() ![]() Inscription : mai 2003 Messages : 6 530 ![]() |
La question est donc : Comment récupérer la structure d'un enregistrement.
puisque vous êtes obligé de générer un fichier en ASCII taille fixe, il faut bien que votre "client" vous délivre la structure interne, et vous devez bien conserver cette information quelle que part, non ? (une table Oracle en l'occurence). Si vous avez la description des champs et la correspondance avec les colonnes de la ou les tables correspondantes, il est facile d'écrire une procédure générique qui génère votre fichier plat. |
|
|
00
|
|
|
#12 |
|
Membre du Club
![]() Inscription : novembre 2002 Messages : 64 ![]() |
Pour ma part j'ai récupéré une structure cobol que j'ai remanié via un tableur pour obtenir un type équivalent que j'ai copié/collé dans une proc stockée.
Dans cette proc je récupère des infos à droite et à gauche pour remplir mon type et écrire un enregistrement en sortie. |
|
|
00
|
|
|
#13 |
|
Membre éprouvé
![]() Inscription : mai 2003 Messages : 412 ![]() |
Si j'ai bien compris tu voulais faire un utl_file.put_line(ton record)
Non c'est pas possible Tu es obligé de construire ta chaine à sortir. |
|
|
00
|
|
|
#14 |
![]() ![]() ![]() Inscription : mai 2003 Messages : 6 530 ![]() |
Maintenant si le type est stocké (créé) dans la base CREATE_TYPE..., il y a moyen d'en retrouver les constituants.
de plus, si vous en faites une table objet, vos composants de record deviennent simplement des colonnes de table. |
|
|
00
|
|
|
#15 | ||
|
Membre du Club
![]() Inscription : novembre 2002 Messages : 64 ![]() |
C'est vrai ??
Code :
Cela m'interresse grandement ! Par contre je vois pas du tout comment faire ... SheikYerbouti, par pitié, pouvez-vous ... ? |
||
|
|
00
|
|
|
#16 |
![]() ![]() ![]() Inscription : mai 2003 Messages : 6 530 ![]() |
M'enfin puisque vous vous "ennuyer" à créer un record de plusieurs dizaines de champs, pourquoi ne pas créer tout simplement une table ???
Il serait ensuite extrêmement facile de rédiger la procédure d'export du fichier plat. |
|
|
00
|
|
|
#17 |
|
Membre éprouvé
![]() Inscription : mai 2003 Messages : 412 ![]() |
Oui mais lui, si j'ai bien compris, , voulais faire un utl_file.put_line (de son record)
Ce qui n'est pas possible |
|
|
00
|
|
|
#18 |
|
Membre du Club
![]() Inscription : novembre 2002 Messages : 64 ![]() |
Du côté d'où je travaille je n'ai pas la possibilité de créer des tables, il faut passer par les dbas.
Ce qui fait que la solution d'une table devient assez lourde surtout si l'interface de sortie évolue souvent ... |
|
|
00
|
|
|
#19 | |
![]() ![]() ![]() Inscription : mai 2003 Messages : 6 530 ![]() |
Citation:
j'imagine que s'il a ce besoin aujourd'hui pour 1 fichier plat, il l'aura ensuite pour d'autres fichiers... |
|
|
|
00
|
|
|
#20 |
|
Membre éprouvé
![]() Inscription : mai 2003 Messages : 412 ![]() |
Ah oki si il veux un truc générique le plus efficace est une table c'est evident comme cela tu peux recuperer les différentes colonnes et construire automatiquement la chaine à extraire.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com