Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/07/2011, 19h50   #1
Invité de passage
 
Homme
Administrateur systèmes et réseaux
Inscription : juillet 2011
Messages : 1
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Niger

Informations professionnelles :
Activité : Administrateur systèmes et réseaux
Secteur : Enseignement

Informations forums :
Inscription : juillet 2011
Messages : 1
Points : 0
Points : 0
Par défaut Problèmes avec requêtes Oracle sous Cron Unix

J'ai des scripts shell d'ETL qui permettent de charger les informations dans des tables Oracle: ces scripts fonctionnent hors cron mais dans le cron, tout indique que le script a marché mais aucune donnée n'est chargée dans les tables afférents. Votre aide svp.

Voici l'extrait du CRON:

Citation:
23 18 * * * /bin/sh /home/niger/scripts/subscribers/etl_refills.sh 1 1 | mailx -s "Logs REFILL_AGG loading" -c harouna.hamani@ne.company.com ramatou.mato@ne.company.com badamassi.abdoulwahab@ne.company.com
Et voici le texte du script:

Code :
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
ORACLE_BASE=/SAN2/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1; export ORACLE_HOME
ORACLE_SID=MISDB; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
NLS_LANG=FRENCH_BELGIUM.WE8MSWIN1252; export NLS_LANG
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/DATA; export ORA_NLS33
# Set shell search paths:
PATH=$PATH:$ORACLE_HOME/bin; export PATH
 
FOR ((w=$2; w>=$1 ; w--))
 
do
 
 
p=`date -d"$w day ago" +%Y_%m%d`
 
 
part1="VOUCHERCDR_"$p
part2="ADJUSTMENTCDR_"$p
part3="REFILL_"$p
 
echo
echo "Traitement de la partition du " $p
 
#### EXTRACTION DES INFORMATIONS AGGREGEES PAR JOUR, HEURE, MSISDN, SERVICECLASS, DESTINATION, TRAFFIC TYPE, TELESERVICECODE
 
sqlplus -s de/nga@dere << EOF > cpp1.txt
SET linesize 8000
SET head off
SELECT to_char(startdate,'YYYYMMDDHH24')||';'||msisdn||';'||to_number(REPLACE(cost,'.',','))||';'||count(*)||';'||sum(REPLACE(cost,'.',','))||';'||'CPP;'  FROM sysadm.voucher_cdr partition($part1) GROUP BY to_char(startdate,'YYYYMMDDHH24'), msisdn,to_number(REPLACE(cost,'.',','));
SET head ON
exit
EOF
 
sqlplus -s de/nga@dere << EOF > evd1.txt
SET linesize 8000
SET head off
SELECT to_char(startdate,'YYYYMMDDHH24')||';'||msisdn||';'||to_number(REPLACE(nominalamount,'.',','))||';'||count(*)||';'||sum(REPLACE(nominalamount,'.',','))||';'||'EVD'||';'||SERVICECLASSID  FROM sysadm.adjustment_cdr partition($part2) WHERE upper(description) LIKE 'MTOP%' GROUP BY to_char(startdate,'YYYYMMDDHH24'), msisdn,to_number(REPLACE(nominalamount,'.',',')),serviceclassid;
SET head ON
exit
EOF
 
sed '$d' cpp1.txt > cpp.txt
sed '$d' evd1.txt > evd.txt
 
cat cpp.txt evd.txt > refill1.txt
 
 
sqlplus -s dbe/db2access@serv2<<EOF
ALTER TABLE REFILL_AGG TRUNCATE PARTITION $part3;
TRUNCATE TABLE  refilltrans;
COMMIT;
EOF
sed '/./!d' refill1.txt > refill2.txt
sed '$d' refill2.txt>refill.txt
rm -f refill1.txt refill2.txt
sqlldr MISWH/WHMIS@misdb  control=/home/niger/scripts/subscribers/refill.ctl
sqlplus -s MISWH/WHMIS@misdb<<EOF
DELETE FROM refilltrans WHERE upper(reportdate) LIKE '%SELECTED%';
commit;
CREATE OR REPLACE VIEW REFILL_VIEW(reportdate,heure,msisdn,serviceclass,denomination,recharges,revenue,refilltype) AS
SELECT to_date(substr(reportdate,1,8),'YYYYMMDD'),substr(reportdate,9,2),msisdn,serviceclass,denomination,recharges,revenue,refilltype FROM refilltrans;
COMMIT;
INSERT INTO REFILL_AGG(reportdate,heure,msisdn,serviceclass,denomination,recharges,revenue,refilltype)
SELECT reportdate,heure,msisdn,serviceclass,denomination,recharges,revenue,refilltype FROM REFILL_VIEW;
COMMIT;
EOF
done
wahabbad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2011, 13h21   #2
Expert Confirmé Sénior


 
Avatar de laurentschneider
 
Homme Laurent Schneider
Administrateur de base de données
Inscription : décembre 2005
Messages : 2 925
Détails du profil
Informations personnelles :
Nom : Homme Laurent Schneider
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Finance

Informations forums :
Inscription : décembre 2005
Messages : 2 925
Points : 4 547
Points : 4 547
> FOR ((w=$2; w>=$1 ; w--))
> do


c'est que genre de shell ça?

tu n'a pas spécifié l'interpréteur avec

#!/bin/totosh

à ta première ligne
__________________
Mon blog : laurentschneider.com
Mon livre : Advanced Oracle SQL Programming
laurentschneider est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h29.


 
 
 
 
Partenaires

Hébergement Web