J'accède à une base de données Oracle à partir d'une application java, lorsque j'exécute mon application, j'obtiens l'erreur suivante:
java.sql.SQLException: ORA-00604: une erreur s'est produite au niveau SQL récursif 1 ORA-01882: la région du fuseau horaire est introuvable
Réponses:
Vous pouvez également essayer de vérifier la version du pilote Oracle jdbc et de la base de données Oracle. Aujourd'hui encore, j'ai eu ce problème lors de l'utilisation de ojdbc6.jar (version 11.2.0.3.0) pour me connecter à un serveur Oracle 9.2.0.4.0. Le remplacer par ojdbc6.jar version 11.1.0.7.0 a résolu le problème.
J'ai également réussi à faire connecter ojdbc6.jar version 11.2.0.3.0 sans erreur, en ajoutant
oracle.jdbc.timezoneAsRegion=false
dans le fichier oracle / jdbc / defaultConnectionProperties.properties (à l'intérieur du pot). Trouvé cette solution iciEnfin, on peut ajouter
-Doracle.jdbc.timezoneAsRegion=false
à la ligne de commande, ou AddVMOption-Doracle.jdbc.timezoneAsRegion=false
dans les fichiers de configuration qui utilisent cette notationla source
Dans une simple installation SQL-Developer sous Windows, allez dans le répertoire
et ajouter
déposer
sqldeveloper.conf
.la source
Erreur que j'ai:
Erreur de db_connection.java - >> java.sql.SQLException: ORA-00604: une erreur s'est produite au niveau SQL récursif 1 ORA-01882: région du fuseau horaire introuvable
ORA-00604: une erreur s'est produite au niveau SQL récursif 1ORA-01882: région de fuseau horaire introuvable
Code précédent:
nouveau code:
maintenant ça marche !!
la source
Mettez à jour le fichier oracle / jdbc / defaultConnectionProperties.properties dans n'importe quelle version de la bibliothèque (c'est-à-dire à l'intérieur de votre fichier jar) que vous utilisez pour contenir la ligne ci-dessous:
la source
Ce qui se passe, c'est que le client JDBC envoie l'ID de fuseau horaire au serveur. Le serveur a besoin de connaître cette zone. Vous pouvez vérifier avec
J'ai quelques serveurs db qui connaissent 'Etc / UTC' et 'UTC' (tzfile version 18) mais d'autres ne connaissent que 'UTC' (tz version 11).
Il existe également un comportement différent du côté client JDBC. À partir de 11.2, le pilote enverra les ID de zone si elle est "connue" à Oracle, alors qu'avant il envoyait le décalage horaire. Le problème avec cet "envoi d'identifiants connus" est que le client ne vérifie pas la version / le contenu du fuseau horaire présent sur le serveur mais a sa propre liste.
Ceci est expliqué dans l'article du support Oracle [ID 1068063.1].
Il semble que cela dépend également du système d'exploitation client, il était plus probable qu'Etc / UTC échoue avec Ubuntu que RHEL ou Windows. Je suppose que cela est dû à une normalisation, mais je n'ai pas compris quoi exactement.
la source
dans eclipse aller courir -> exécuter la configuration
là-bas, accédez à l' onglet JRE dans les panneaux latéraux droits
dans la section Arguments VM , collez ceci
-Duser.timezone=GMT
puis Appliquer -> Exécuter
la source
J'ai eu ce problème lors de l'exécution de tests automatisés à partir d'un serveur d'intégration continue. J'ai essayé d'ajouter l'argument VM "
-Duser.timezone=GMT
" aux paramètres de construction, mais cela n'a pas résolu le problème. Cependant, l'ajout de la variable d'environnement "TZ=GMT
" a résolu le problème pour moi.la source
ERREUR :
Solution: configuration CIM dans Centos.
Ajoutez ces arguments java:
la source
Dans Netbeans,
Cliquez sur OK, puis réexécutez votre programme.
Remarque: vous pouvez également définir d'autres timestones en plus de UTC et GMT.
la source
J'ai rencontré ce problème avec Tomcat. La configuration de ce qui suit a
$CATALINA_BASE/bin/setenv.sh
résolu le problème:Je suis sûr que l'utilisation de l'une des suggestions de paramètres Java des autres réponses fonctionnerait de la même manière.
la source
J'ai également fait face à un problème similaire.
Environnement:
Linux, projet de mise en veille prolongée, pilote ojdbc6 lors de l'interrogation de la base de données oracle 11g.
Résolution
Le paramètre TZ n'a pas été défini dans la machine Linux, ce qui indique essentiellement à Oracle le fuseau horaire. Ainsi, après avoir ajouté la déclaration d'exportation "export TZ = UTC" au moment du démarrage de l'application, mon problème a été résolu.
UTC -> Changez selon votre fuseau horaire.
la source
Si ce problème se trouve dans JDeveloper: modifiez les propriétés du projet pour le modèle et le projet de vue -> exécuter / déboguer -> profil par défaut -> modifier, ajoutez l'option d'exécution suivante: -Duser.timezone = Asia / Calcutta
Assurez-vous que la valeur de fuseau horaire ci-dessus est extraite de votre base de données comme suit:
En plus de cela, vous voudrez vérifier les paramètres de fuseau horaire dans votre jdev.conf ainsi que dans JDeveloper -> Menu Application -> Propriétés du projet par défaut -> Exécuter / Déboguer -> Profil par défaut -> Options d'exécution.
la source
J'ai aussi eu le même problème lorsque j'ai essayé de créer une connexion dans JDeveloper. Notre serveur situé dans un fuseau horaire différent et, par conséquent, a soulevé les erreurs ci-dessous comme suit:
J'ai fait référence à de nombreux forums qui ont demandé d'inclure le fuseau horaire dans les options Java (Exécuter / Déboguer / Profil) des propriétés du projet et des propriétés du projet par défaut comme
-Duser.timezone="+02:00"
bMais cela n'a pas fonctionné pour moi. Enfin, la solution suivante a fonctionné pour moi.Ajoutez la ligne suivante au fichier de configuration de JDeveloper ( jdev.conf ).
Le fichier se trouve dans "<racine d'installation oracle> \ Middleware \ jdeveloper \ jdev \ bin \ jdev.conf".
la source
Dans mon cas, je pourrais faire fonctionner la requête en remplaçant "TZR" par "TZD".
la source
J'ai pu résoudre le même problème en définissant le fuseau horaire dans mon système Linux (Centos6.5).
Republication de
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/set-time.html
définir le fuseau horaire par
/etc/sysconfig/clock
exemple sur ZONE = "America / Los_Angeles"sudo ln -sf / usr / share / zoneinfo / America / Phoenix / etc / localtime
Pour déterminer la valeur du fuseau horaire, essayez de
et recherchez le fichier qui représente votre fuseau horaire.
Une fois que vous avez défini ces paramètres, redémarrez la machine et réessayez.
la source
J'ai eu le même problème en essayant d'établir une connexion sur OBIEE à Oracle db. J'ai changé mon fuseau horaire Windows de (GMT + 01: 00) Afrique du Centre-Ouest à (GMT + 01: 00) Bruxelles, Copenhague, Madrid, Paris. Ensuite, j'ai redémarré mon ordinateur et cela a très bien fonctionné. On dirait qu'Oracle n'a pas été en mesure de reconnaître le fuseau horaire de l'Afrique centrale occidentale.
la source
Ce problème se produit lorsque le code qui tente de se connecter à db a un fuseau horaire qui n'est pas dans db. Il peut également être résolu en définissant le fuseau horaire comme ci-dessous ou tout fuseau horaire valide disponible dans oracle db. fuseau horaire valide qui peut être trouvé sélectionnez * à partir de la version v $;
System.setProperty ("user.timezone", "America / New_York"); TimeZone.setDefault (null);
la source
Face au même problème en utilisant Eclipse et une base de données Oracle distante, la modification du fuseau horaire de mon système pour correspondre au fuseau horaire du serveur de base de données a résolu le problème. Redémarrez la machine après avoir changé le fuseau horaire du système.
J'espère que cela peut aider quelqu'un
la source
Pour ce type d'erreur, modifiez simplement l'heure de votre système au format GMT standard de votre pays
Par exemple, le fuseau horaire indien est Chennai, Kolkata.
la source