Ich bezweifle erheblich, daß Du den ‘Speicherordner’ angeben willst/mußt.
Ansonsten: das zeigt Dir folgender Befehl in psql an:
show data_directory;
Aber, wie gesagt, das brauchst Du ganz sicher nirgends anzugeben, da es Aufgabe der DB ist, und nur der DB, sich um die physische Speicherung der ihr anvertrauten Daten zu kümmern.
Ich will ja auch die Daten, die in dieser Datenbank drin stehen auslesen mit den MS Integration Services und da muß ich den Server und den Speicherort angeben, wenn ich den Treiber für postgrsql anklicke.
Ohne das von Dir genannte Produkt zu kennen bin ich fest überzeugt, daß Deine Aussage flasch ist. Warum auch immer. PostgreSQL hat Programmierschnittstellen, z.B. ODBC und JDBC, um mal 2 zu nennen, es gibt mehr. Aber exakt keine dieser Schnittstellen interessiert sich um die physikalische Ablage der Daten.
Machen wir mal ein Gedankenexperiment: Du definierst 3 Tablespaces zur Ablage Deiner Tabellen. Welchen Ordner willst Du nun angeben?
Wenn Du Zugriff auf das Filesystem haben willst, auf dem die Daten liegen, dann schau hier:
# The default values of these variables are driven from the -D command line
# switch or PGDATA environment variable, represented here as ConfigDir.
#data_directory = 'ConfigDir' # use data in another directory
Wenn Du nun mit einer Fremdanwendung die dort befindlichen Daten beim Betrieb des Servers ausliest, hast Du zu hoher Wahrscheinlichkeit Müll, selbst wenn es der Anwendung gelingen sollte, das Speicherformat incl. Dingen wie TOAST richtig zu lesen. Weil die DB auch oft da rein schreibt und Du respektive Deine Anwendung gar nicht wissen kann, was PG grad zu tun gedenkt.
Will sagen: selbst wenn Du z.B. im laufenden Betrieb ohne spezielle Vorkehrungen das komplett wegspeicherst, wird es Dir höchstwahrscheinlich nicht gelingen, daraus auf einem anderen Rechner wieder diese DB zum laufen zu bekommen, weil die Daten inkonsistent wären.
Von Schreibzugriffen anderer Anwendungen auf die Daten will ich gar nicht erst albträumen…
Der einzigste Fall, wo Du das vielleicht in der Tat wissen müßtest, wären maximal Backup-Tools.
Handelt es sich bei Deinem Produkt um sowas?
lese die Antwort, sie sagt Dir den Ordner, wo Deine Daten gespeichert sind.
Oder werden die anders gespeichert?
Nein. Du hast unterhalb des oben angezeigten Verzeichnisses weitere wie z.B. base, global, pg_xlog.
Die Zuordnung der Objekte zu den Dateinamen kannst Du abfragen:
test=*# select relname, relfilenode from pg_class where relname = 'test';
relname | relfilenode
---------+-------------
test | 13741655
(1 row)
Du kannst u.U. mehr als eine Zeile bei obiger Abfrage haben, dann z.B., wenn in unterschiedlichen Schemas gleichbenannte Objekte liegen und/oder wenn es TOAST-Tables gibt und so weiter. Ich hab mich bisher um dieses Kram eher wenig interessiert, einen Link zum nachlesen nenne ich Dir weiter unten noch.
Und die zugehörige Datei dann finden:
Auf die Gefahr hin, daß ich mich widerhole: ich bezweifle, das Du wissen willst/mußt, wo was gespeichert ist. Vielleicht ist nur der Datenbank-Name gefragt. Eine Software, die ganz regulär eine Verbindung zu einer laufenden DB aufbauen und Daten austauschen will, hat sich, sorry, einen Dreck um die physische Speicherung der Daten zu kümmern.
Ansonsten: im Detail findest Du die physische Speicherung der Daten hier erklärt: