Vous n'êtes pas identifié(e).
Lorsque j'insere mes données dans les tables .
Message
psql:data.sql:46131: error: invalid command \N
Quand je regarde data.sql j'ai
copy avec des données /N
Un peu d'aide merci
Hors ligne
Quel commande utilisez-vous ?
Guillaume.
Hors ligne
ora2pg -t COPY -o data.sql -c fichier de conf ora2pg
Hors ligne
Et après \i data.sql
Hors ligne
Mon fichier data.sql contient des données \N
Exemple
COPY cb_cm_article (name,shortcut,etiquette,description,validity_start,validity_end,creator_id,creator_name,modifier_id,modifier_name,manager_id,manager_name) FROM STDIN;
Message - copie 21540af811400016 bandeau \N xxx xxx xxx xxx \N
\.
Dernière modification par deckers (04/01/2022 14:42:14)
Hors ligne
\N indique seulement que le contenu de la colonne vaut NULL. Auriez-vous modifié le fichier data.sql ?
Guillaume.
Hors ligne
Non il faut mettre quoi
Hors ligne
Le message "invalid command \N" indique que psql a interpreté le \N command une commande normale et non pas comme faisant partir d'une commande COPY.
Peut être que le fichier généré est invalide, quelle version d'ora2pg utilisez-vous? Sinon, qu'y a-t-il à la ligne 46131 du fichier en question?
Julien.
https://rjuju.github.io/
Hors ligne
J'utilise Ora2Pg v23.0
Hors ligne
psql:data.sql:46131: error: invalid command \N
Généralement cette erreur arrive après d'autres erreurs qui indiquent que la table n'a pas pu être créée, ou bien s'il est créée, que COPY ne peut pas écrire dedans (pas les droits, read-only, etc...)
A partir du moment où le COPY part en erreur, les données en dessous qui devaient être copiées dans la table sont prises comme des commandes et ça génère un déluge d'erreur. Il faut remonter au tout début des erreurs pour avoir les messages intéressants.
@DanielVerite
http://blog-postgresql.verite.pro/
Hors ligne
Bonjour,
Dans mon fichier de configuration, il semble que je doive avoir deux définitions identiques :
une première partie avec REPLACE_TABLES/REPLACE_COLS et une seconde partie avec SELECT AS
Ai-je fait une erreur ?
J'ai essayé de supprimer l'instruction REPLACE_COLS, mais j'obtiens une erreur. Il me semble que CTR_MTT AS NUMERO ne peut pas définir seul un nouveau nom de colonne ?
TYPE INSERT
DATA_ONLY 1
TABLES oracle_matable
REPLACE_TABLES oracle_matable:c2
les colonnes que l'on garde
COLUMNS c2:numero,version,date_maj,carte_active, user_maj,date_debut_droit,date_debut_carte
FROM oracle_matable a
Mapping des colonnes Oracle -> colonnes PostgreSQL
REPLACE_COLS oracle_matable(CTR_MTT:numero)
#Dans le select on redonne les noms !! (definition en double ?)
REPLACE_QUERY oracle_matable[
SELECT
a.CTR_MTT as numero,
a.CTR_DEB as date_debut_droit,
a.CTR_DEB as date_debut_carte,
CASE
WHEN a.CTR_ETA = 'A' THEN true
ELSE false
END AS carte_active,
a.CTR_IAM as user_maj,
a.CTR_IAM as media_maj,
a.CTR_IAMM as media_maj
FROM oracle_matable a
WHERE a.CTR_MTT ='12345678'
Hors ligne
Bonjour,
J'ai un champ de date dans Oracle et je souhaite initialiser deux champs different dans la table postgres PostgreSQL.
Actuellement, j'utilise REPLACE_COLS, mais cela ne fonctionne pas. il y a un decalage qui se produit lors de l'INSERT
Une idee ? Merci
Cordialement, Philippe
Hors ligne