Font
[thread]3748[/thread]

Postgres Datentypen: Postgres Datentypen mit Perl auslesen



<< >> 7 entries, 1 page
guest Gast
 2006-12-05 18:58
#34955 #34955
Hallo,

in Postgres gibt es standardmäßig arrays als Datentyp. Darüber hinaus kann man eigene Datentypen definieren.
Weiß jemand, wie ich die
* mit DBD::Pg
* mit Class::DBI
auslesen, ändern , speichern kann?

Rolf
renee
 2006-12-05 19:13
#34956 #34956
User since
2003-08-04
14371 articles
ModeratorIn
[Homepage] [default_avatar]
Ich habe keine Postgres hier zum Testen, aber vielleicht bringt Dir colum_info aus CPAN:DBI etwas...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
nepos
 2006-12-06 10:23
#34957 #34957
User since
2005-08-17
1420 articles
BenutzerIn
[Homepage] [default_avatar]
Hm, eigene Datentypen anlegen, das sollte über CREATE TYPE gehen. Mehr Infos, wie du eigene Typen anlegen kannst, findest du in der Postgres-Doku
Löschen via DROP TYPE. Ändern kann man die mit ALTER TYPE (zumindest in 8.2, bei meiner 7.4.14 gibts das noch nicht. Da musst du den Typen droppen und neu anlegen).
Wenn du die vorhandenen Typen auslesen willst, kannst du das mit der Funktion type_info_all() bzw. type_info() machen. DBD::Pg gibt dir genauere Infos bzgl. spezieller Funktionen für Postgresql.

@renee: Mit column_info kannst du nur Typen von Spalten in bestehenden Tabellen herausfinden.\n\n

<!--EDIT|nepos|1165393527-->
renee
 2006-12-06 10:33
#34958 #34958
User since
2003-08-04
14371 articles
ModeratorIn
[Homepage] [default_avatar]
[quote=Guest,05.12.2006, 17:58][...]
Weiß jemand, wie ich die
[...]
auslesen, [...][/quote]
War auch ein Teil der Frage...

Ich habe gerade bei CPAN:DBD::Pg gesehen, dass es auch pg_type (array-ref, read-only) gibt
Quote
PostgreSQL specific attribute. It returns a reference to an array of strings for each column. The string shows the name of the data_type.
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
nepos
 2006-12-06 11:06
#34959 #34959
User since
2005-08-17
1420 articles
BenutzerIn
[Homepage] [default_avatar]
Hatte das so verstanden, dass er die generell in einer Datenbank vorhandenen Datentypen auslesen will und nicht nur die, die in den Tabellen vorkommen.
Wie immer gibts natürlich mehrere Wege nach Rom ;)
Rolf_PlusW
 2006-12-13 14:54
#34960 #34960
User since
2006-12-13
22 articles
BenutzerIn
[default_avatar]
[quote=nepos,06.12.2006, 10:06]Hatte das so verstanden, dass er die generell in einer Datenbank vorhandenen Datentypen auslesen will und nicht nur die, die in den Tabellen vorkommen.[/quote]
Nein, schon welche in Tabellen.
Ich kann ja unter Postgres sagen:

create table xyz (
id serial,
vals integer [] ;
);

dann

$ insert into xyz (vals ) values ('{10,20,30}' );

und dann

$ select vals[2] from xyz;

liefert 20.
Wenn ich das mit DBI/DBD auslese bekomme ich das als String
'{10,20,30}'
was ich gerne hätte, wäre das mitClass::DBI direkt als array.
Aber noch interessanter ist, wie behandelt DBD::Pg eigentlich
selbst definierte Datentypen ? hat da jemand Erfahrungen?

Rolf
nepos
 2006-12-13 15:29
#34961 #34961
User since
2005-08-17
1420 articles
BenutzerIn
[Homepage] [default_avatar]
Hm, das wäre vielleicht eine Frage an pgsql-general@postgresql.org. Die Mailing-Liste ist recht gut, da sind auch die Entwickler von PostgreSQL selber mit drin.
<< >> 7 entries, 1 page



View all threads created 2006-12-05 18:58.