Comment tester une instruction if dans PostgreSQL?

Question: je veux tester une instruction if dans PostgreSQL:

IF (SELECT COUNT(*) FROM pg_language WHERE lanname = 'plpgsql') > 0 THEN
    PRINT 'Good'
ELSE
    PRINT 'Bad'
END IF;

Maintenant, cela déclenche une erreur SI.

Comme ce que j'ai lu, c'est parce que j'ai besoin d'utiliser plpgsql pour être en mesure d'utiliser si, d'impression et de variables.

Jusqu'à présent, j'ai probablement aussi utiliser SELECT au lieu de les imprimer.

Comment puis-je changer la langue de l'avant l'exécution de cette instruction à plpgsql ?

Je veux d'abord tester, AVANT je l'ai mis dans une procédure stockée.
Pour tester le code avec les variables, etc.

Edit:

Résolue par:

DO LANGUAGE plpgsql $$
    BEGIN
        IF (SELECT COUNT(*) FROM pg_language WHERE lanname = 'plpgsql') > 0 THEN 
            RAISE NOTICE 'GOOD';
        ELSE
            RAISE NOTICE 'BAD';
        END IF;
    END;
$$;
Re: "je veux d'abord tester, AVANT je l'ai mis dans une procédure stockée": Pourquoi? Quand vous faites des tests de code C#, refuse de créer un Main méthode?
Non, mais je refuse de faire une fonction pour chaque bit de code (avec tous les paramètres), puis appeler cette fonction à partir de la méthode main à chaque fois que j'ai besoin de tester une partie du code. (et après avoir à le retirer de ces fonctions). Fondamentalement, tout ce que je veux faire est de lancer à CRÉER LANGUAGE plpgsql; si elle n'est pas inscrite langue au début d'un script. Mais cela ne semble guère possible, si il n'y a aucune instruction if...
Il n'y a pas de PRINT déclaration dans Postgres. Et en PL/pgSQL est toujours créé depuis la 9.0. Donc, vous ne devez tester pour elle, si vous ciblez les versions précédentes
Vrai que je l'ai vu, c'est juste appelé ÉLEVER AVIS cependant. Une question qui reste alors est: pourquoi est-impression en surbrillance, puis. Ironiquement, il a couru sur le serveur de production, mais a échoué sur le serveur de développement, parce que le serveur de production est la nouvelle marque, et le développement est vieux. En général, vous ne savez jamais ce version un client potentiel aura/accepter.

OriginalL'auteur Stefan Steiger | 2012-02-05