8
votes

Erreur de syntaxe PostgreSQL à PGADMIN

Je suis nouveau à PostgreSQL et à utiliser l'outil de requête à PGADMIN. J'essaie d'exécuter des requêtes PGSQL qui utilisent des variables, mais je ne peux pas sembler avoir la syntaxe droite.

Voici une requête d'échantillon qui donne une erreur de syntaxe: P>

DECLARE
  num INTEGER;

BEGIN

  num := 3;
  RAISE NOTICE '%', num;

END;


1 commentaires

Venir du monde MSSQL / TSQL, j'ai également rencontré le même problème. Je suis très surpris que vous ne puissiez pas simplement écrire et exécuter des scripts simples PL / PGSQL dans PostgreSQL.


5 Réponses :


3
votes

Si vous essayez d'imprimer num (dites, pour le débogage), vous pouvez essayer: xxx

http://www.postgresql.org/docs/8.4/static/plpgsql-errors-et -Messages.html

Imprimer ne signifie rien dans PL / PGSQL.


0 commentaires

1
votes

Je n'ai aucune idée de ce que vous essayez d'atteindre. PostgreSQL ne prend pas en charge ce genre de syntaxe. Mots-clés similaires (sauf imprimé ?!) sont dans PL / PGSQL qui est une langue de procédure pour les fonctions de construction, pas pour écrire des requêtes SQL autonomes.


0 commentaires

1
votes

postgres ne supporte rien de tel que celui-ci ( pourtant ). PSQL (le client officiel de la ligne de commande) a des scripts rudimentaires .

La meilleure option pour vous est PGAdmin, qui a déjà Scripting construit dans.


0 commentaires

5
votes

juste pour reformuler et "concrétiser" ce que disent les autres: Il n'y a pas de procédures en ligne fortes> dans PostgreSQL. Il y a aussi aucune déclaration d'impression forte>. Vous devez:

CREATE OR REPLACE FUNCTION test() RETURNS void AS $$
DECLARE
  num INTEGER;

BEGIN

  num := 3;
  RAISE NOTICE '%', num;

END;
$$ LANGUAGE plpgsql;

SELECT test();


0 commentaires

12
votes

Vous pouvez utiliser la déclaration DO. Par exemple:

do $$
declare 
  num integer := 10;
begin

    RAISE INFO 'VARIABLE: %', num;

end;
$$language plpgsql;


0 commentaires