Je suis en train de convertir une colonne de varchar à bigint en utilisant la requête suivante:erreur Vertica lors de la modification des types de données
ALTER TABLE 'table_name' ALTER COLUMN 'colname' SET DATA TYPE BIGINT;
Mais j'obtiens l'erreur suivante:
SQL Error [2377] [0A000]: [Vertica][VJDBC](2377) ROLLBACK: Cannot convert column "colname" from "varchar(128)" to type "int"
[Vertica][VJDBC](2377) ROLLBACK: Cannot convert column "colname" from "varchar(128)" to type "int"
com.vertica.util.ServerException: [Vertica][VJDBC](2377) ROLLBACK: Cannot convert column "src_mainuser" from "varchar(128)" to type "int"
La colonne a Valeurs int comme 37439510 mais en format Varchar.
semble être un problème de données et vous avez un nombre entier non là quelque part. Essayez de sélectionner colname :: bigint à partir de nom_table (à peu près sûr que c'est une syntaxe de conversion de données valide pour vertica) si cette erreur se produit, vous avez un caractère ou deux dans cette colonne. – Twelfth
Est-ce que ... pas d'erreurs ... – anonymous
Peut-être une limitation Vertica ... cette erreur ne donne pas beaucoup pour l'information, pas de mention de types de données en conflit vraiment. Contactez le vendeur, l'équipe de développement de Vertica pourrait avoir une meilleure réponse que ce que je dis ensuite. Standard autour de travail, créer une deuxième table qui a la colonne en tant que grand int, puis masser toutes les lignes de l'ancienne table. Déposez la vieille table, renommez la nouvelle table. Si vous obtenez une meilleure réponse de Vertica, s'il vous plaît partager. – Twelfth