sql Skript über PL/pgSQL ausführen

Fragen und Probleme zu PL/pgSQL.

sql Skript über PL/pgSQL ausführen

Beitragvon drooper » Do 22. Okt 2009, 15:58

Hey,

ich steh irgendwie gerade neben mir. Ich möchte ein sql Skript über PL/pgSQL ausführen und bekomme immer einen Syntaxfehler bei der Option \i zum Ausführen eines Skriptes. Es liegt am backslash, doch weis ich nicht wie ich den im String darstellen soll. Müsste doch eigentlich mittels \\ gehen, oder?

Code: Alles auswählen
EXECUTE '\\i S:/Skripte/sql/Schemaimport/datei.sql' ;
mfg
Marcus
drooper
Benutzer
 
Beiträge: 81
Registriert: Mi 5. Aug 2009, 15:57

Beitragvon ads » Do 22. Okt 2009, 16:02

\i ist eine psql Option. Nichts, was du in einer Funktion verwenden kannst.
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören Bild

Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler

PostgreSQL Service & Support
ads
Erfahrener Benutzer
 
Beiträge: 4147
Registriert: Mi 8. Feb 2006, 11:58
Wohnort: MD

Beitragvon akretschmer » Do 22. Okt 2009, 16:02

drooper hat geschrieben:Hey,

ich steh irgendwie gerade neben mir. Ich möchte ein sql Skript über PL/pgSQL ausführen und bekomme immer einen Syntaxfehler bei der Option \i zum Ausführen eines Skriptes. Es liegt am backslash, doch weis ich nicht wie ich den im String darstellen soll. Müsste doch eigentlich mittels \\ gehen, oder?

Code: Alles auswählen
EXECUTE '\\i S:/Skripte/sql/Schemaimport/datei.sql' ;
mfg
Marcus


Code: Alles auswählen
kretschmer@tux:~$ psql test
psql (8.4.1)
Type "help" for help.

test=# \t
Showing only tuples.
test=# \o mein_sql.sql
test=# select 'select version()';
test=*# \o
test=*# \i mein_sql.sql
 PostgreSQL 8.4.1 on i486-pc-linux-gnu, compiled by GCC gcc-4.3.real (Debian 4.3.2-1.1) 4.3.2, 32-bit


Andreas
--
ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)

https://www.xing.com/profile/Andreas_Kretschmer7
Hosting-Provider mit PostgreSQL-Support gesucht? Mich fragen!
akretschmer
Erfahrener Benutzer
 
Beiträge: 5938
Registriert: So 29. Okt 2006, 14:35
Wohnort: Kaufbach, Sachsen, Germany, Germany

Beitragvon symbiont » Do 22. Okt 2009, 16:08

EXECUTEist nicht EXECUTE
symbiont
Erfahrener Benutzer
 
Beiträge: 1328
Registriert: Mo 17. Mär 2008, 12:45
Wohnort: NULL

Beitragvon drooper » Do 22. Okt 2009, 16:08

Hi Andreas,

man bist du schnell. Kaum hat ich das Thema erstellt und schon die Antwort...wow.

Über psql kann ich die Datei auch ausführen, aber über eine PL/pgSQL Funktion und EXECUTE '...' funktioniert es nicht.

mfg
Marcus
drooper
Benutzer
 
Beiträge: 81
Registriert: Mi 5. Aug 2009, 15:57

Beitragvon ads » Do 22. Okt 2009, 16:16

drooper hat geschrieben:Über psql kann ich die Datei auch ausführen, aber über eine PL/pgSQL Funktion und EXECUTE '...' funktioniert es nicht.

psql ist es erlaubt, die angegebene Datei einzulesen.

pl/pgSQL hat keinerlei Möglichkeit, auf Dateien zuzugreifen. Das \i funktioniert nur in psql und zwar nur auf der Konsole in psql, nicht gekapselt in irgendwelche anderen Befehle.
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören Bild

Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler

PostgreSQL Service & Support
ads
Erfahrener Benutzer
 
Beiträge: 4147
Registriert: Mi 8. Feb 2006, 11:58
Wohnort: MD

Beitragvon ads » Do 22. Okt 2009, 16:16

symbiont hat geschrieben:EXECUTEist nicht EXECUTE

Was wolltest du uns jetzt mit zwei gleichen Links sagen, die noch dazu nichts zum Thema beitragen? ;-)
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören Bild

Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler

PostgreSQL Service & Support
ads
Erfahrener Benutzer
 
Beiträge: 4147
Registriert: Mi 8. Feb 2006, 11:58
Wohnort: MD

Beitragvon akretschmer » Do 22. Okt 2009, 16:22

ads hat geschrieben:Was wolltest du uns jetzt mit zwei gleichen Links sagen, die noch dazu nichts zum Thema beitragen? ;-)


*g*

Andreas
--
ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)

https://www.xing.com/profile/Andreas_Kretschmer7
Hosting-Provider mit PostgreSQL-Support gesucht? Mich fragen!
akretschmer
Erfahrener Benutzer
 
Beiträge: 5938
Registriert: So 29. Okt 2006, 14:35
Wohnort: Kaufbach, Sachsen, Germany, Germany

Beitragvon drooper » Do 22. Okt 2009, 16:22

Okay, das leuchtet ein. Besteht über PL/pgSQL selbst die Möglichkeit ein Skript auszuführen oder zu importieren? Meine Idee wäre jetzt, die Datei in einen varchar zu packen und dann diese auszuführen über das EXECUTE Statement.

mfg
Marcus
drooper
Benutzer
 
Beiträge: 81
Registriert: Mi 5. Aug 2009, 15:57

Beitragvon akretschmer » Do 22. Okt 2009, 16:23

drooper hat geschrieben:Okay, das leuchtet ein. Besteht über PL/pgSQL selbst die Möglichkeit ein Skript auszuführen oder zu importieren? Meine Idee wäre jetzt, die Datei in einen varchar zu packen und dann diese auszuführen über das EXECUTE Statement.

mfg
Marcus


Aus einer Tabelle heraus? Ja, das geht.

Andreas
--
ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)

https://www.xing.com/profile/Andreas_Kretschmer7
Hosting-Provider mit PostgreSQL-Support gesucht? Mich fragen!
akretschmer
Erfahrener Benutzer
 
Beiträge: 5938
Registriert: So 29. Okt 2006, 14:35
Wohnort: Kaufbach, Sachsen, Germany, Germany

Nächste

Zurück zu PL/pgSQL

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste