PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Interaktive Eingabe bei PostgreSQL



MadB
04-03-2003, 22:13
Moinsen Leute!

Der Betreff sagt eigentlich schon alles.
Ich kenne diese Möglichkeit von Oracle. Da kann man etwa folgendes statement abgeben.

SELECT KName, KOrt FROM KUNDE
WHERE KORT = '&Eingabe';

Dann wartet die DB auf eine Eingabe.

Wie kann man das mit Postgres realisieren?

Fragende Grüße

Torsten

Christoph
07-03-2003, 08:33
In Oracle ist das automatische Abfragen von Variablen kein
SQL-Feature sondern ein Feature von sqlplus (die Oracle SQL-Shell).

Die Postgres SQL-Shell "psql" kennt zwar Variablen (:name statt
&name bei Oracle), diese werden aber nicht interaktiv abgefragt wenn
sie nicht gesetzt sind.

Ich nehme mal an, dass du das in einem interaktiven Script brauchst
(z.B. zum Anlegen von Benutzern). Da würde ich folgende Ansätze
vorschlagen:

a) Parameter in einem Shell-script abfragen (oder als Kommandozeilenparameter)
und dann mit diesen Variablen psql inline aufrufen.
Beispiel:


#!/bin/sh

# Daten abfragen
echo -n "Username: "
read USERNAME

# SQL ausführen
PGUSER=...
PGPASSWORD=...
psql <<EOF
create user $USERNAME;
EOF


b) Wenn's komplizierter wird, die Sache über ein Perlscript erledigen
(z.B. über das DBI-Interface).

Christoph

MadB
07-03-2003, 13:56
Hallo Christoph!

Besten Dank für die Antwort.

Dass das bei Oracle ein feature von sqlplus ist, war mir bekannt.
Ich dachte nur, dass es genau jenes auch bei Postgres gibt.

Für ein (interaktives) Script brauche ich das nicht.
Ich mache momentan ein kleines Projekt an meiner UNI. Dort portiere ich die Aufgaben der Studenten im vierten Semester im Fach Datenbanken von Oracle nach PostgreSQL. Tja, und da war auch eine Aufgabe, die genau so eine interaktive Eingabe erfordert. Im ersten posting stand genau das Statement, wie ich es unter Oracle gelöst hatte.
Daher meine Frage, wie es unter Postgres funktionieren könnte.

Nun muss ich mir was einfallen lassen. Ist aber auch alles halb so wild.

Dankende Grüße

Torsten

Christoph
11-03-2003, 08:37
> Ich mache momentan ein kleines Projekt an meiner UNI. Dort portiere ich
> die Aufgaben der Studenten im vierten Semester im Fach Datenbanken von
> Oracle nach PostgreSQL.
>
Die Aufgaben würden mich interessieren. Ich setze ebenfalls PostgreSQL
im Fach Datenbanken ein (die dazugehörigen Praktikumsaufgaben vom letzten
Semester stehen unter
http://lionel.kr.hs-niederrhein.de/~dalitz/data/lehre/DBS/DBS.html)

Könntest Du mir einen Link zu den Aufgaben zuschicken
(Email: christoph (punkt) dalitz (a) hsnr (punkt) de)?

MadB
11-03-2003, 16:30
Moinsen!

Logisch, kannste gerne haben.
Man kann die Aufgaben aber nicht online einsehen. Der Bereich ist geschützt und nur intern einsehbar.
Aber ich sende Dir den Kram gerne zu.

Grüße

Torsten