The UNIX and Linux Forums  


Go Back   Les systèmes UNIX et Linux Forums > Top Forums > De programmation et de script Shell
.
google unix.com



De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici.

Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
Fil Thread Starter Forum Réponses Last Post
(sed) l'analyse de la colonne d'insertion, qui traverse de multiples lignes jjordan De programmation et de script Shell 3 10-09-2007 01:23 AM
Besoin d'exécuter la même déclaration Legend986 De programmation et de script Shell 8 10-01-2007 05:59 PM
Comment puis-je exécuter dans IF ELSE Déclaration laknar De programmation et de script Shell 1 06-08-2007 03:54 AM
Insérer TAB en écho déclaration sunils27 De programmation et de script Shell 5 08-26-2005 04:36 AM
commande awk pour INSERT nattynatty De programmation et de script Shell 4 05-10-2002 03:11 PM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Recherche sur ce Thread Rate Thread Modes d'affichage
  #1 (permalink)  
Old 08-24-2006
Amruta Pitkar Amruta Pitkar is offline
Registered User
  
 

Join Date: Aug 2006
Posts: 54
Le script ne fait pas exécuter INSERT

Salut

J'ai un fichier texte, le contenu est
Line1: champ1, champ2, field3, field4, field5, field6 ....... field20
Line2: champ1, champ2, field3, field4, field5, field6 ....... field20
Ligne3: champ1, champ2, field3, field4, field5, field6 ....... field20
.... et ainsi de suite ...

Je veux lire ce fichier et insérer les données dans le tableau.

Comment puis-je faire ... quelqu'un peut-il aider?
J'ai essayé de lire le fichier texte, chaque ligne, de réduire les champs, faire de la connexion à la base de données et puis exécutez l'instruction INSERT ....
Mais quand je fais la présente déclaration ne Insérez exécuter.
Quelqu'un peut-il me guider comment puis-je y parvenir?


Code:
#####Connecting sqlplus to check the connectivity
sqlplus -s /nolog <<EOF>/dev/null
connect ${DB_LOGIN}/${DB_PASSWORD}@${DB_NAME}

cat /$FILEPATH/$FILENAME | while read LINE
do
    echo ${LINE}
    acctno=`echo $LINE | cut -f1 -d','`
    echo $acctno
    salutation=`echo $LINE | cut -f2 -d','`
    name=`echo $LINE | cut -f3 -d','`
    billdate=`echo $LINE | cut -f4 -d','`
    totaldue=`echo $LINE | cut -f5 -d','`
    billdeductiondate=`echo $LINE | cut -f6 -d','`
    billduedate=`echo $LINE | cut -f7 -d','`
    templatecode=`echo $LINE | cut -f8 -d','`
    billid=`echo $LINE | cut -f9 -d','`
    emailid=`echo $LINE | cut -f10 -d','`
    brnno=`echo $LINE | cut -f11 -d','`
    billsummaryid=`echo $LINE | cut -f12 -d','`
    batchno=`echo $LINE | cut -f13 -d','`
    emailfile=`echo $LINE | cut -f16 -d','`
    echo "Insert into table"

    spool ${SYS_TEMP_DIR}/${JOB_ID}_db_sql.log
    INSERT INTO SendMailDetails (acctno) values ('${acctno}');
    echo "Table Appended"
    commit;
    spool off;
    exit;
    EOF
done

J'ai aussi essayé:


Code:
MYCOMMAND=`awk '$1' ${FILEPATH}${FILENAME}`
sqlplus -s /nolog <<EOF>/dev/null
connect ${DB_LOGIN}/${DB_PASSWORD}@${DB_NAME}

spool my.log
Insert into SendMailDetails(acctno) values($MYCOMMAND);
spool off
commit;
exit
EOF;

Mais je suis succombé, S'il vous plaît, aidez .....
  #2 (permalink)  
Old 08-24-2006
mukundranjan mukundranjan is offline
Registered User
  
 

Date d'inscription: juillet 2006
Messages: 20
Je pense que sa très facile à utiliser sql loader pour votre objectif.
  #3 (permalink)  
Old 08-24-2006
Amruta Pitkar Amruta Pitkar is offline
Registered User
  
 

Join Date: Aug 2006
Posts: 54
Merci Mukund

J'ai reçu au moins une direction ...

Merci
Amruta
  #4 (permalink)  
Old 08-24-2006
blowtorch's Avatar
chalumeau blowtorch is offline Forum Advisor  
Supporter
  
 

Join Date: Dec 2004
Lieu: Singapour
Messages: 2350
Amruta, vous pouvez utiliser le shell pour le faire assez facilement:

Code:
#####Connecting sqlplus to check the connectivity
sqlplus -s /nolog <<EOF>/dev/null
connect ${DB_LOGIN}/${DB_PASSWORD}@${DB_NAME}
oldIFS=$IFS
IFS=,
while read acctno salutation name billdate totaldue billdeductiondate billduedate templatecode billid emailid brnno billsummaryid batchno field14 field15 emailfile rest_of_the_fields; do
    echo "Insert into table"
# insert into whatever table, whichever values that you want
# after you are done, go ahead
    echo "Table Appended"
    commit;
    spool off;
    exit;
    EOF
done

field14, field15: tenir les 14 et 15 domaines, rest_of_the_fields: contient les champs de 17 à la fin de la ligne. Tout le reste va dans la bien nommée variables.
  #5 (permalink)  
Old 08-25-2006
Amruta Pitkar Amruta Pitkar is offline
Registered User
  
 

Join Date: Aug 2006
Posts: 54
Thumbs up SQL Loader de données Append

Salut, il
J'ai travaillé sur Mukund la suggestion d'utiliser sqlloader ... il a travaillé avec succès.
c'est le principal script shell
LoadMain.sh


Code:
#!/usr/bin/ksh

DB_LOGIN=SOMESYSTEM
DB_PASSWORD=SOMEPASSWD
DB_NAME=SOMENAME
FILENAME="$1"

sqlldr ${DB_LOGIN}/${DB_PASSWORD}@${DB_NAME} control=tryloader log=mlist2.log data=mlist2.txt

echo "I am done"

-------------
data \u003d mlist.txt est le fichier d'entrée de texte qui contient des données avec des délimiteurs.
\u003d tryloader.ctl de contrôle est le contrôle de fichier qui contient des informations sur la manière dont les données seront ajoutées à la table ...
Mon tryloader.ctl contient:

Code:
LOAD DATA
APPEND INTO TABLE SendMailDetails
(
  AcctNo CHAR TERMINATED BY ",",
  Salutation CHAR TERMINATED BY ",",
  Name CHAR TERMINATED BY ",",
  BillDate CHAR TERMINATED BY ",",
  TotalDue DECIMAL EXTERNAL TERMINATED BY ",",

 ...and other fields
)

Et encore .. merci les gars ....

Amruta Pitkar
Closed Thread

Bookmarks

Thread Tools Recherche sur ce Thread
Recherche sur ce Thread:

Recherche avancée
Modes d'affichage Rate this thread
Rate this thread:

Règles de messages
Tu mai pas de nouvelles discussions: nonoui
Tu mai pas envoyer des réponses:
Tu mai pas envoyer des pièces jointes
Tu mai pas modifier vos messages

BB code est Sur
Smilies sont Sur
[IMG] code est Sur
Le code HTML est Hors tension
Trackbacks sont Sur
Pingbacks sont Sur
Refbacks sont Sur




Toutes les heures sont au format GMT -4. Le temps est maintenant 02:10 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traductions Langue Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Les systèmes UNIX et Linux Forums Content Copyright © 1993-2009. Tous droits Reserved.Ad de gestion par RedTyger

Content Relevant URLs par vBSEO 3.2.0