Bonjour,
J'aimerai mettre au point une fonction ou procédure PL récupérant les ordres de création d'objet, ici par exemple les indexs dans un fichier. Je viens de l'univers oracle et il semblerai que les petites différences entre les 2 types de PL me pose probléme.
Voici la fonction qui récupére les oid dans un curseur qui les passe ensuite dans une boucle for a la fonction getindexddl() pour ensuite récupérer le texte dans un fichier pour chaque occurence, mais ça ne fonctionne pas:
J'obtiens a a chaque fois des erreurs différentes au fur à mesure que je progresse jamais explicite la derniere en date:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 CREATE OR REPLACE FUNCTION recup_index() RETURNS varchar AS ' DECLARE test CURSOR IS SELECT attrelid from pg_attribute where attrelid in (select oid from pg_class where relname in (select indexname from pg_indexes)); oid int; oidfinal varchar; BEGIN oid:=0; for oid in test loop select pg_get_indexdef(oid) into oidfinal; COPY oidfinal TO '/home/xxxx/test2.copy'; end loop; return oidfinal; end;' LANGUAGE plpgsql;
ERROR: syntax error at or near "/"
LINE 11: COPY oidfinal TO '/home/xxxxx/test2.copy'...
Merci pour votre aide si vous voyez des incohérences ou que vous avez des suggestions.
Partager