Scripts bash : requêtes sql
Bonjour,
je souhaiterais faire un script bash qui exécute une requête sql et qui ramène dans un fichier texte le résultat d'un select.
Comment dois-je m'y prendre.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| #!/bin/bash
read_sql_stmt() {
typeset stmt=$1
typeset login=$2
echo "
set feedback off verify off heading off pagesize 0 message off wrap off echo off pages 0 feed off serveroutput off termout off
$stmt;
exit
" | sqlplus -S $login
}
read_sql_stmt "select username, user_id from dba_users" "system/pwd" | while read u i
do
echo "user $u has userid $i"
done |
Le problème avec ce code, c'est qu'il renvoit des trucs inutiles :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| test5.sh
user has userid
user set has userid head off
user has userid
user has userid
user Editor: has userid vi
user has userid
user has userid
user Session has userid altered.
user has userid
user has userid
user Date has userid format: 20050817 1026
user has userid
user SYS has userid 0
user SYSTEM has userid 5
... |
Re: scripts bash : requêtes sql
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| #!/bin/bash
read_sql_stmt() {
typeset stmt=$1
typeset login=$2
echo "
set feedback off verify off heading off pagesize 0 message off wrap off echo off pages 0 feed off serveroutput off termout off
$stmt;
exit
" | sqlplus -S $login > /dev/null
}
read_sql_stmt "select username, user_id from dba_users" "system/pwd" | while read u i
do
echo "user $u has userid $i"
done |
Tu renvoies les commandes qui écrivent des informations non désirées dans /dev/null
Re: scripts bash : requêtes sql
Du coup, je ne vois plus rien.
Quel est le code permettant de mettre uniquement le résultat de la requête dans un fichier texte 'res.txt'
[RESOLU] scripts bash : requêtes sql
J'ai trouvé : il faut utiliser la commande " spool res.txt "