Oracle SQL Developer environnement de codage
J'ai Oracle SQL Developer (3.1.07) et je suis en train de travailler avec une base de données qui utilise WE8ISO8859P1
encodage:
SELECT * FROM nls_database_parameters WHERE parameter = 'NLS_CHARACTERSET';
J'ai des problèmes avec l'enregistrement des packages qui contient des symboles unicode. Quand j'ai ouvert précédemment enregistré paquet tous les symboles unicode sont tournés vers '¿'
.
Quels paramètres dois-je modifier pour que SQL Developer garder ces symboles?
J'ai essayé de mettre de l'environnement de l'encodage 'ISO-8859-15'
et quelques autres encodages, mais il ne va pas aider.
Vous devez vous connecter pour publier un commentaire.
Si votre base de données encode le texte à un non-unicode codés sur un octet codant (par exemple ISO-8859), aucun symbole n'est pas présent sur la table de caractères sera considérée comme non valide et remplacé par un espace réservé. Vous ne pouvez pas revenir en arrière à partir de l'information est perdue.
Qui peuvent être habituellement travaillé autour de lors de l'entreposage de données, mais comme pour le code source, vous ne pouvez pas contrôler la façon dont Oracle encoder vos chaînes.
Si votre base de données est configuré pour utiliser un tel schéma d'encodage vous n'êtes probablement pas censé écrire du code qui enfreint ses règles.
Vous pourriez peut-être besoin de ce jeu de caractères de la migration
http://docs.oracle.com/cd/B10501_01/server.920/a96529/ch10.htm#1656
sur l'Oracle de la documentation
Au moins pour ouvrir PKG dans sql developer, vous pouvez faire un essai rapide et voir si ça fonctionne:-
Changement SQL Developer 'encoding' à 'unicode-utf-8" qui est par défaut dans les versions ultérieures maintenant.
Vous ,finalement, doivent aller pour le charset de la base de données de migration de 'AL32UTF8" pour éviter d'autres questions (comme des données) en raison de ce char.
Si vous regardez USER_SOURCE vous verrez que le code source, tel qu'il est stocké/interprété par la base de données, sera dans un VARCHAR2 colonne, de sorte à utiliser la base de données de jeu de caractères. En tant que tel, le code source de votre aura besoin pour être en WE8ISO8859P1.
En théorie, si le client et la base de données en utilisant le même jeu de caractères, puis la base de données ne vais pas essayer de faire tout jeu de caractères de la traduction et vous pouvez être en mesure de se faufiler dans une séquence d'octets que la base de données pense WE8ISO8859P1 mais a du sens, dans unicode. Cependant, à un moment donné, quelqu'un va utiliser le mauvais client, et il va se casser.
Vous n'avez pas besoin de l'unicode pour les identifiants etc dans le code, donc je suppose que c'est dans les littéraux de chaîne. Vous êtes mieux de les stocker dans un tableau (NVARCHAR2 colonne) et de les sélectionner dans le code plutôt que de coder en dur les. Si ce n'est pas possible, vous pouvez utiliser UNISTR et du code en dur pertinentes des valeurs hexadécimales.