Spalten und Datentypen einer Abfrage ermitteln

Hi zusammen,
ich muss aus Abfragen Funktionen bauen, um diese zu beschleunigen (Stored Commands aus aus einer anderen Datenbank).
Da es sich hier um sehr viele handelt möchte ich das automatisieren und dazu die Namen und Datentypen der Ergebnisspalten der Abfragen zu ermitteln.
Im Prinzip das was im pgAdmin über dem Resultset steht.

Ich habe aber keine Idee, wie ich das anstellen soll, hier hilft mir das Information-Schema nicht viel, weil es ja auch berechnete Spalten geben kann. Außerdem muss es so etwas ja geben, weil der PGAdmin die ja auch irgendwie darstellt.

Also noch mal: Ich brauchen eine Funktion GetColNamesAndTypes oder Abfrage, die mir für ein Statement die Spaltennamen und Datentypen zurückgibt:

Select * from GetColNamesAndTypes (‘Select Name, Vorname, Geburtsdatum, Groesse from Kunden’)

Ergebnis

Colname Coltype
========= ==================
Name Text
Vorname Text
Geburtsdatum Date
Groesse Integer

Es wäre riesig wenn da jemand eine Idee hätte, vielen Dank
Jürgen Spatz

pg_typeof() ist Dein Freund.

test=*# select * from bla;
 id | val 
----+-----
  1 |  10
  2 |  23
  3 |  23
  4 |  12
  5 |  22
(5 rows)

test=*# select *, pg_typeof(id), pg_typeof(val) from bla;
 id | val | pg_typeof | pg_typeof 
----+-----+-----------+-----------
  1 |  10 | integer   | integer
  2 |  23 | integer   | integer
  3 |  23 | integer   | integer
  4 |  12 | integer   | integer
  5 |  22 | integer   | integer
(5 rows)

Welche Programmiersprache verwendest Du denn?

Bei Java/JDBC kann man z.B. eine Abfrage “beschreiben” lassen und der Treiber liefert dann die die Spaltennamen und Datentypen des Ergebnisses.

Hallo, vielen Dank, damit komme ich schon weiter.
Ich entwickle hier mit Gupta Team Developer, könnte aber auch c# verwenden.

Grüße Jürgen Spatz