web-dev-qa-db-fra.com

Échappement de guillemets simples dans REDSHIFT SQL

J'ai beaucoup de valeurs de chaîne contenant des guillemets simples que je dois insérer dans une colonne de la table REDSHIFT. J'ai utilisé à la fois /' et '' pour échapper à la citation simple dans l'instruction INSERT. 

par exemple. 

INSERT INTO table_Temp
    VALUES ('1234', 'O\'Niel'), ('3456', 'O\'Brien')

J’ai aussi utilisé "au lieu de", mais il ne cesse de me signaler que "la liste de valeurs doit avoir la même longueur", c’est-à-dire non: d’arguments pour chaque enregistrement> 2. 

Pouvez-vous laisser savoir comment résoudre ce problème?

3

La norme en SQL est les guillemets simples:

INSERT INTO table_Temp (col1, col2)  -- include the column names
    VALUES ('1234', 'O''Niel'), ('3456', 'O''Brien');

Vous devez également inclure les noms de colonne correspondant aux valeurs insérées. C'est probablement la cause de votre deuxième erreur.

5
Gordon Linoff

Je pense que cela peut dépendre de votre environnement. J'utilise l'éditeur redshift SQL de Periscope Data et \ fonctionnait comme un caractère d'échappement. '' et \\ ne fonctionnaient pas.

0
Greg Lewis

utiliser \\' pour échapper '

s = s.replace("'", "\\'")
0
Swagatika