comment passer des variables de script shell pour sqlplus

J'ai un script shell qui appelle le fichier.sql

Je suis à la recherche d'un moyen de passer certains paramètres de mon fichier.sql.

Si je ne passe pas une variable avec une valeur pour le script sql, je vais devoir créer plusieurs .sql fichiers avec l'instruction SELECT et tout cela allait changer quelques mots.

Mon script shell appels de fichier.sql:

sqlplus -S user/pass@localhost
echo " Processing triples"
./load_triples.sh BUILDING/Mapping_File BUILDING Y >> load_semantic.log

@/opt/D2RQ/file.sql
exit;
EOF

Et c'est ainsi que mon fichier.sql ressemble:

SET ECHO ON;
SPOOL count.log

SELECT COUNT(*) as total_count
FROM TABLE(SEM_MATCH(
'{
        ?s rdf:type :ProcessSpec .
        ?s ?p ?o
}',SEM_Models('BUILDING'),NULL,
SEM_ALIASES(SEM_ALIAS('','http://VISION/DataSource/SEMANTIC_CACHE#')),NULL));

SPOOL OFF;

Puis-je modifier mon script shell afin qu'il passe les noms de variable?

I. e.: modèle = "BÂTIMENT"
et de les remettre à un fichier.sql?

Est-il quelque chose comme ça?

Votre script shell ressemble comme il a été mutilé un peu; est load_triples.sh le script et le sqlplus appel juste avant la @/opt/... ligne?
Voir cette réponse: stackoverflow.com/questions/2236201/.... Vous pouvez ajouter les arguments pour le SQL en ligne de commande et la référence à l'aide de &1 type de notation.

OriginalL'auteur Angelina | 2013-07-10