2017-08-07 4 views
0

Ich versuche, die Antwort einer Abfrage über SQLPLUS gespeichert und speichern Sie es in einer lokalen Variablen, aber wenn ich den folgenden Code ausführen, bekomme ich den Pfad als Ausgabe statt der Wert der Abfrage, könntest du mir bitte helfen? Ich weiß nicht, was ich tue, falsch:Abrufen und speichern SQLPLUS Abfrage Ergebnis in eine Variable Bash

#!/bin/bash 

SQLPLUS="<Path to sqlplus> -s user/passwd" 
X=$SQLPLUS<<EOF_SQL_1 
    set heading off; 
    select table1 from table 2 where parameter ='Properties'; 
exit; 
EOF_SQL_1 
echo $X 

Das Ergebnis dieses Skripts ist „es Benutzer/passwd“, wenn es die eiter der Abfrage soll ich gemacht. Bitte sagen Sie mir, was mache ich falsch: S

+0

$ SQLPLUS ist kein Befehl Substitution aber eine variable Erweiterung $ ("$ SQLPLUS") muss stattdessen verwendet werden –

Antwort

0

mit heredoc und Kommandosubstitution in demselben Befehl würde nicht empfohlen werden, desto leichter ist, eine Funktion zu verwenden

fun_sql() { 
    sqlplus user/[email protected] <<EOF 
... 
EOF 
} 

X=$(fun_sql) 
+0

Das hat tatsächlich funktioniert, danke !! Raten Sie, Sie haben Recht, und es muss in verschiedenen Schritten getan werden – Cano

Verwandte Themen