2017-08-07 2 views
2

Je souhaite insérer des caractères UTF-8 dans la base de données Oracle 12 à l'aide de l'instruction INSERT. J'utilise PL/SQL Developer Tool (version 8).Caractères UTF-8 dans Oracle

Quand je lance cette instruction INSERT

INSERT INTO my_table (my_column) VALUES ('ტექსტი'); 

puis exécutez l'instruction SELECT

SELECT my_column FROM my_table 

retourne la question marsk

?????? 

Mais quand j'insérer mon texte UTF-8 manuellement (en utilisant copier & coller) dans la table, puis exécutez le même SELECT déclaration renvoie correctement les données

ტესქტი 

Dois-je exécuter une commande avant d'insérer des caractères UTF-8 en utilisant instruction d'insertion?

+2

Veuillez exécuter 'select * from nls_database_parameters où paramètre '% SET%';' et ajouter un résultat de cette requête à votre question. Je suppose que 'INSERT INTO my_table (my_column) VALEURS (N 'ტექსტი');' devrait donner le résultat que vous voulez (il suffit d'ajouter un préfixe N avant le texte littéral). – krokodilko

Répondre

1

Prefix votre chaîne littérale avec n comme dans

INSERT INTO my_table (my_column) VALUES (n'ტექსტი'); 

qui révèleront votre Oracle DB que la valeur d'entrée est de nvarchar2 type de données.