PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 27/05/2012 22:37:28

pasqal
Membre

[RÉSOLU] pgscript

bonsoir,

je tente un script qui commence comme ça :

DECLARE @layenom;
DECLARE @laytype;
SET @layenom = base_essai; -- indiquer le nom de la couche
SET @laytype = 'POINT'; -- type de couche : POINT MULTILINESTRING POLYGON

-- Table: sc.base_point

BEGIN
INSERT INTO geometry_columns(
            f_table_catalog, f_table_schema, f_table_name, f_geometry_column, 
            coord_dimension, srid, type)
    VALUES ('','sc',@layenom,'the_geom',2,2154,'@laytype');

-- DROP TABLE sc.@layenom;

CREATE TABLE sc.@layenom
(
  gid serial NOT NULL,
  refdoss character varying(25) NOT NULL,
…………

J'execute pgscript et là

[WARNING  ] SET  = base_essai
            ERROR:  syntax error at or near "SET "
            LINE 1: SET  = base_essai
                    ^
[WARNING  ] INSERT INTO geometry_columns(
                        f_table_catalog, f_table_schema, f_table_name, f_geometry_column, 
                        coord_dimension, srid, type)
                VALUES ('','sc',,'the_geom',2,2154,'POINT')
            ERROR:  syntax error at or near ","
            LINE 4:     VALUES ('','sc',,'the_geom',2,2154,'POINT')
                                           ^
[WARNING  ] CREATE TABLE sc.
            (
              gid serial NOT NULL,
………

autant vous dire que j'ai essayé avec ' ' et sans, changer le nom de variable, de valeur etc. mais rien. Ce qui me stresse, c'est que @laytype semble fonctionner.

Merci de votre aide.

Dernière modification par pasqal (17/06/2012 17:28:55)

Hors ligne

#2 28/05/2012 09:11:09

edlm
Membre

Re : [RÉSOLU] pgscript

pasqal a écrit :

bonsoir,

je tente un script qui commence comme ça :

DECLARE @layenom;
DECLARE @laytype;
SET @layenom = base_essai; -- indiquer le nom de la couche
SET @laytype = 'POINT'; -- type de couche : POINT MULTILINESTRING POLYGON

DECLARE ne déclare pas une variable mais un curseur et SET ne positionne pas n'importe quelle variable mais les paramètres d'éxécution.


Si ce que vous  cherchez à faire est de positionner des variables dans un script psql alors la solution est à chercher du côté de la meta commande
\set  nom valeur (ou d'utiliser le switch --set). Voir la doc de psql


Éric

Hors ligne

#3 28/05/2012 18:36:45

pasqal
Membre

Re : [RÉSOLU] pgscript

J'ai suivi les instructions de http://www.pgadmin.org/docs/dev/pgscript.html  et je lance bien pgscript dans pgadmin. Y-a-t-il interférence entre les instructions pgscript et psql ? Et pourquoi SET @laytype = 'POINT' fonctionne car bien remplacé dans le message d'erreur « VALUES ('','sc',,'the_geom',2,2154,'POINT')  » ?

Dernière modification par pasqal (17/06/2012 17:29:13)

Hors ligne

#4 28/05/2012 18:59:30

pasqal
Membre

Re : [RÉSOLU] pgscript

Je me réponds après pas mal de tâtonnements, the soluce is

 SET @laytype = 'POINT', @layenom = 'basessai'; 

merci pour l'aide.

Hors ligne

Pied de page des forums