

SPI_execute_with_args — exécute une commande avec des paramètres hors ligne
int SPI_execute_with_args(const char *command, intnargs, Oid *argtypes, Datum *values, const char *nulls, boolread_only, longcount)
         SPI_execute_with_args exécute une commande qui pourrait
         inclure des références à des paramètres fournis en externe. Le texte de
         commande fait référence à un paramètre avec
         $ et l'appel spécifie les
         types et valeurs des données pour chaque symbole de ce type.
         nread_only et count ont la
         même interprétation que dans SPI_execute.
        
         Le principal avantage de cette routine comparé à
         SPI_execute est que les valeurs de données peuvent être
         insérées dans la commande sans mise entre guillemets et échappements, et donc
         avec beaucoup moins de risques d'attaques du type injection SQL.
        
         Des résultats similaires peuvent être réalisés avec SPI_prepare
         suivi par SPI_execute_plan ; néanmoins, lors de
         l'utilisation de cette fonction, le plan de requête est toujours personnalisé avec les
         valeurs de paramètres spécifiques fournies. Pour une exécution simple, cette
         fonction doit être préférée. Si la même commande doit être exécutée avec
         plusieurs paramètres différents, chaque méthode peut être la plus rapide,
         le coût de la planification pouvant contrebalancer les bénéfices des plans
         personnalisés.
        
const char * commandchaîne de commande
int nargs
            nombre de paramètres en entrée ($1, $2, etc.)
           
Oid * argtypes
            un tableau de longueur nargs, contenant les
            OID des types de données des paramètres
           
Datum * values
            un tableau de longueur nargs, containing des
            valeurs réelles des paramètres
           
const char * nullsun tableau décrivant les paramètres NULL
            Si nulls vaut NULL, alors
            SPI_execute_with_args suppose qu'aucun paramètre
            n'est NULL. Dans le cas contraire, chaque entrée du tableau
            nulls doit valoir ' ' si
            le paramètre correspondant est non NULL et 'n' si le
            paramètre correspondant est NULL (dans ce dernier cas, la valeur réelle
            de l'entrée values correspondante n'a pas
            d'importance). Notez que nulls n'est pas une chaîne
            de texte. C'est un tableau et, de ce fait, il n'a pas besoin d'un
            caractère de fin '\0'.
           
bool read_only
            true pour les exécutions en lecture seule
           
long count
            nombre maximum de lignes à renvoyer ou 0 pour aucune
            limite
           
         La valeur de retour est identique à celle de SPI_execute.
        
         SPI_processed et
         SPI_tuptable sont configurés comme dans
         SPI_execute en cas de succès.