Teradata - führen Sie eine Datei/Skript im Unix-Linux-Eingabeaufforderung
Hab ich den client/TTU installiert Unix-Rechner für Teradata.
Wenn ich den folgenden Code, es funktioniert. Wo "..." ist Teradata BTEQ normale Ausgabe und sobald das folgende erledigt ist, bin ich wieder auf dem prompt.
$ bteq
...
....
. logon dbname/dbuser,dbpassword
SELECT DATE, TIME;
.LOGOFF;
.QUIT;
..
...
$
Nun, sagen wir, dass ich die folgenden Zeilen in eine Datei namens "testtd.bteq"
. logon dbname/dbuser,$dbpassword
SELECT DATE, TIME;
.LOGOFF;
.QUIT;
Was ich will ist nun ... wie kann ich dieses Skript ausführen (.bteq) auf Unix - $ - prompt ???
Ich habe versucht, die folgenden Methoden so weit, aber Sie hat nicht funktioniert, kann Im fehlt etwas:
1. bteq < /path/to/testtd.bteq > testtd.log
2. bteq <
.ausführen /Pfad/zu/testtd.bteq
HereDocEndsHere
Irgendwelche Ideen? HABE ich zu bieten ". Anmeldung dbname/dbuser,dbpassword" ERST, wenn ich mit der HereDocument Weg?
Läuft bteq-Befehl auf $ prompt " gar nicht geben mir jede HILFE/Optionen, die ich verwenden können, wie andere Befehle.
d.h.
cmd -u Benutzer -p Passwort -f-Datei-etc...
InformationsquelleAutor Arun Sangal | 2013-05-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die beste Praxis, die ich bewusst bin, ist
~/.tdlogon
Dateibteq
nennen, mit all den Sachen, die er braucht.E. g., erstellen Sie eine Datei
bteqScript.sh
mitBeachten Sie, dass
.run file=...
führt .Befehl logon mit Ihren Anmeldeinformationen, die an anderer Stelle gespeichert.Großes Lob an Alex Hasha für die bteq-Skript.
InformationsquelleAutor grisaitis
PS - Es funktioniert über Methode 1-wenn ich hart code das Passwort in der script-Datei für den Befehl LOGON.
Ich wollte das gleiche zu tun, über den Export eine variable namens "dbpassword"
d.h.
$ export dbpassword=xyxyxyxyx
und
dann innerhalb der Skript-Datei, die ich verwenden kann, "$dbpassword" ... in den LOGON-Befehl.. irgendwie ist der export nicht exportieren die var innerhalb .bteq Befehl logon.
bteq
ist in der Lage solche.Ich denke auch. HereDoc-Weg ist die Arbeit, wenn ich bin in meinem shell-script und tut das folgende: bteq << dann auf der nächsten Zeile . Anmeldung $a/$b,$c ..... "das funktioniert, weil wenn a, b und c werden exportiert. Aber, wenn das logon-Befehl wird in der .bteq selbst, es funktioniert nicht.
Scheint, wie ich brauchen, zu zwicken .bteq-Datei in eine dummy-runtime-Datei und ersetzen Sie das Schlüsselwort "$dbpassword" mit echtem Wert für password und dann passieren, dass anstelle des tatsächlichen .bteq und dann löschen Sie die dummy-Datei.
Ich empfehle halten Sie eine
.tdlogon
Datei in Ihrem home-Ordner mit Ihrem Benutzernamen und Passwort, mit dem folgenden Inhalt:.logon databaseName/username,password
von dort Aus können Sie starten Sie Ihrenbteq
code mit.run file=$HOME/.tdlogon
und Sie werden angemeldet.InformationsquelleAutor Arun Sangal