Insérer Plusieurs Lignes SQL Teradata
Je suis entrain de créer un volatile de table et d'essayer d'insérer des lignes dans la table. Je peux télécharger une ligne comme ci-dessous...
create volatile table Example
(
ProductID VARCHAR(15),
Price DECIMAL (15,2)
)
on commit preserve rows;
et;
INSERT INTO Example
Values
('Steve',4);
Cependant, lorsque j'essaie de télécharger de multiples j'obtiens l'erreur:
"Erreur de syntaxe: attendais à quelque chose entre ')' et ','."
INSERT INTO Example
Values
('Steve',4),
('James',8);
OriginalL'auteur Bocean | 2016-09-23
Vous devez vous connecter pour publier un commentaire.
Que Gordon a dit, Teradata ne prend pas en charge les VALEURS avec plusieurs lignes (et l'UNION de TOUS échouera à cause de la manque DE.
Vous pouvez utiliser un Multi Instruction de la Demande (MSR) au lieu de:
Si c'est un BTEQ emploi les Inserts sont soumis en un seul bloc après le point-virgule final (quand il y a une nouvelle commande de départ sur la même ligne c'est la partie de la MSR). Dans l'Assistant SQL ou Studio, vous devez l'envoyer à l'aide de
F9
au lieu deF5
.OriginalL'auteur dnoeth
Je ne pense pas que Teradata prend en charge plusieurs ligne
values
de la syntaxe. Utilisez simplementselect
:OriginalL'auteur Gordon Linoff
OriginalL'auteur access_granted
J'ai trouvé une solution pour ce via RÉCURSIVE. Il va comme ceci:-
Données de la ligne 1 ne pas obtenir inséré (mais vous avez besoin de cette ligne). À partir de la ligne 2, les données que vous entrez pour val1, val2, etc. est inséré dans les colonnes respectives. Utiliser autant UNION ALLs' autant de lignes que vous souhaitez insérer. Espérons que cela aide 🙂
OriginalL'auteur Swastik Raj Ghosh
Au moins dans notre version de Teradata, nous ne sommes pas en mesure d'utiliser une instruction insert, avec une expression de table commune. Au lieu de cela, trouver une vraie table (de préférence de petite taille) et de faire un excellent 1.
OriginalL'auteur Eman4real