Spalten und Datentypen einer Abfrage ermitteln

Fragen und Probleme rund um die Abfragespache SQL.
Antworten
JSpatz
Benutzer
Beiträge: 62
Registriert: Fr 19. Mai 2006, 13:58

Spalten und Datentypen einer Abfrage ermitteln

Beitrag von JSpatz » Do 11. Okt 2018, 17:16

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

akretschmer
Erfahrener Benutzer
Beiträge: 7513
Registriert: So 29. Okt 2006, 13:35
Wohnort: Kaufbach, Sachsen, Germany, Germany
Kontaktdaten:

Re: Spalten und Datentypen einer Abfrage ermitteln

Beitrag von akretschmer » Do 11. Okt 2018, 17:23

pg_typeof() ist Dein Freund.

Code: Alles auswählen

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)

PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

castorp
Erfahrener Benutzer
Beiträge: 1070
Registriert: Sa 27. Jun 2009, 22:24
Wohnort: Bayern

Re: Spalten und Datentypen einer Abfrage ermitteln

Beitrag von castorp » Do 11. Okt 2018, 18:02

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.
A SQL query walks into a bar and sees two tables. He walks up to them and says 'Can I join you?'

JSpatz
Benutzer
Beiträge: 62
Registriert: Fr 19. Mai 2006, 13:58

Re: Spalten und Datentypen einer Abfrage ermitteln

Beitrag von JSpatz » Do 11. Okt 2018, 20:24

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

Antworten