Mise à jour pour ajouter le deuxième correctif
Après quelques essais et erreurs, j'ai trouvé la solution : certaines requêtes fonctionnaient, d'autres renvoyaient cette erreur.
Fixe 1 Le dénominateur commun est que ce sont les requêtes qui ont été converties au format multilignes par le moteur V8 / le nouvel éditeur qui présentent ce problème.
À titre d'exemple, le passage au nouvel éditeur / V8 a permis de convertir de longues chaînes de texte de la manière suivante :
var query = "select Street_Number, street_name, street_suffix, street_dir_prefix, postal_code, city, mls, address, unitnumber "
+"as unit, uspsid,latitude,longitude from properties.forsale where status = 'active' and zpid is null and property_type = 'residential'"
Cette requête a donné lieu à l'erreur décrite. La solution consiste à modifier les requêtes plus longues pour qu'elles soient des chaînes continues, comme dans le cas suivant :
var query = "select Street_Number, street_name, street_suffix, street_dir_prefix, postal_code, city, mls, address, unitnumber as unit, uspsid,latitude,longitude from properties.forsale where status = 'active' and zpid is null and property_type = 'residential'"
Fixe 2
Celle-ci a été un peu plus frustrante. V8 n'est pas aussi indulgent en ce qui concerne les connexions à la base de données. Avant V8, il fermait automatiquement toutes les connexions qui traînaient, mais il semble que V8 n'aime pas cela. J'avais initialement écrit mes scripts pour partager le moins de connexions possible, mais j'ai remarqué que j'obtenais cette erreur sur certaines d'entre elles, et c'était celles où une connexion pouvait être "divisée". Par exemple :
var conn = getconnection() //this is a connection function I have written
var date = date || Utilities.formatDate(new Date(), "America/Chicago", "yyyy-MM-dd");
var keyobj = getkeys(undefined,undefined,conn);
conn = keyobj.conn;
var results = sqltojson(query, true, conn);
La fonction ci-dessus provoquait cette erreur, et je suppose que c'est parce que la variable "conn" était renvoyée par la fonction mais, je vais faire une hypothèse folle, que la connexion pour une raison quelconque ne peut pas être dans deux fonctions séparées à la fois puisqu'elle était renvoyée et continuait à être une valeur dans l'objet "keyobj" et aussi en tant que "conn". Ajout delete keyobj.conn
immédiatement après avoir défini le conn
variable a fait l'affaire :
var conn = getconnection() //this is a connection function I have written
var date = date || Utilities.formatDate(new Date(), "America/Chicago", "yyyy-MM-dd");
var keyobj = getkeys(undefined,undefined,conn);
conn = keyobj.conn;
delete keyobj.conn;
var results = sqltojson(query, true, conn);
Ces deux corrections ont mis fin à l'erreur et ont permis au script de continuer sans problème.