Comment puis-je corriger cette erreur : non pris en charge SQL92?
Je wirte code en java et connexion de base de données avec oracle. - Je exécuter un script et vous obtenez cette erreur.Mon script fonctionne en crapaud mais ne fonctionne pas dans mon projet
url incluent
.
.
.
.
.
DECODE
(REF.target_type_code,
'1', wf.workflow_name,
'20', reqtyp.request_type_name,
'6', prj1.project_name,
'59', trootinfo1.NAME,
'55', DECODE
(document.checked_out_by,
NULL,
REPLACE
(REPLACE
(REPLACE
(REPLACE
(REPLACE
(knta_i18n_resource.get
('DMS_REFERENCE_DETAIL_CHECKED_OUT.TXT'
),
knta_i18n_format_utils.format_date
(document.checked_in_date,
3
)
)
),
document.version_number
)
),
'{4}'
)
)
) reference_detail,
.
.
.
.
try {
stmt = connection.createStatement();
rset = stmt.executeQuery(url) ;
} catch (Exception e)
{
error= e.getLocalizedMessage() ;
return 4;
}
cette erreur se produit en raison de { } parenthèses. Je l'ai tester .
Quand je supprime les parenthèses ne pas erreur. Mais j'en ai besoin et Comment puis-je résoudre ce problème?
- Montrez votre requête. Votre requête semble être incorrect.
- vous le poster votre requête
- ma requête fonctionne en crapaud mais n'est pas exécuté dans mon netbeans
- Si vous souhaitez obtenir de l'aide, tenir compte de deux choses. 1)
url include " {2} "
: il ne suffit pas de poster ce qu'un message d'erreur. Post message d'erreur complet. 2) vous devez également enregistrer la valeur de laurl
variable avant d'appelerstmt.executeQuery(url)
. - personne ne sera capable de l'aide basée sur le fait qu'il fonctionne en CRAPAUD. Post la chaîne d'instruction.
- là-haut {4} est l'erreur
- Remplacer
{}
ce avec()
et de l'essayer.
Vous devez vous connecter pour publier un commentaire.
Il est tout au sujet de
{
et}
. Vous ne les utilisez pas. Ojdbc de ne pas l'analyser. Utiliser différents jeton au lieu d'eux.Ceci est probablement dû à l'JDBC syntaxe d'Échappement (voir l'article 13.4 de la JDBC 4.1 spécification). Un pilote JDBC doit gérer échappe entre
{
et}
et de traduire les échappé à la fonction standard, jointure externe etc, à la base de données de format spécifique.Autant que je sache, un pilote doit analyser uniquement les fuites si elle se produit dans la déclaration corps lui-même, et pas quand il est à l'intérieur du texte dans l'état (comme dans votre exemple). Donc, pour moi, cela ressemble à un bug dans le pilote JDBC traitement d'échappement de votre pilote.
Vous pouvez peut-être contourner ce problème en suivant la réponse de l'autre StackOverflow post:
Créer Java sur Oracle base de données avec JDBC
Un résumé est:
La ligne du milieu est ce qui vous semble être manquant. Je n'arrivais pas à comprendre jusqu'à ce que j'ai trouvé ce post.
Il semble que plusieurs de REMPLACER les appels n'ont pas assez d'arguments. En comptant à partir de la gauche, le premier foyer a deux arguments. Le second n'a qu'un seul argument. La troisième a deux arguments. Le quatrième n'a qu'un seul argument. La cinquième (et dernière) a deux arguments. Dans Oracle le REMPLACER la fonction nécessite au moins deux arguments. Je ne suis pas en mesure de déterminer si c'est la cause de l'erreur que vous n'avez pas posté un énoncé complet, mais je serais certainement attendre que le manque de bon arguments pour REMPLACER un problème.
De partager et de profiter.