i Wirt code en Java et connexion de base de données avec Oracle. J'exécute un script et obtenez cette erreur.my Script fonctionne dans le crapaud mais ne fonctionne pas dans mon projet
URL include
. p> . p> Cette erreur se produit à cause de {} parenthèses. Je le teste.
Quand je supprime des parenthèses n'étant pas une erreur. Mais j'en ai besoin et comment puis-je résoudre ce problème? P> p>
5 Réponses :
Il semble que plusieurs des appels de remplacement ne disposent pas de suffisamment d'arguments. Compter à gauche, le premier remplacement a deux arguments. La seconde n'a qu'un argument. Le troisième a deux arguments. Le quatrième n'a qu'un argument. Le cinquième (dernier) a deux arguments. Dans Oracle the Remplacer la fonction nécessite au moins deux arguments. Je ne suis pas en mesure de déterminer s'il s'agit de la cause de l'erreur car vous n'avez pas affecté une déclaration complète, mais je m'attendais certainement à ce que le manque d'arguments appropriés soit remplacé comme un problème. P>
Partager et profiter. P>
C'est tout sur { code> et
} code>. Vous ne les utilisez pas. JOJDBC ne l'analysera pas. Utilisez des jetons différents au lieu d'eux. P>
Quel jeton dois-je utiliser? Je viens de rencontrer le même problème lorsque j'appelle une procédure avec JDBC
Vous pouvez utiliser tout ce que vous voulez. F.e. UTILISEZ XX I>, remplacez-le d'abord, puis remplacez-le à l'inverse.
Ceci est probablement dû à la syntaxe d'évacuation JDBC (voir section 13.4 de la spécification JDBC 4.1). Un pilote JDBC doit gérer des échappées entre Autant que je sache, un conducteur ne devrait analyser que les évasions si elles se produisent dans le corps de la déclaration elle-même, et non quand il est dans le texte dans la déclaration (comme dans votre exemple). Donc, pour moi, cela ressemble à un bogue dans le traitement de votre pilote de JDBC. P> { code> et
} code> et traduire la fonction standard évasée, une jointure externe etc. au format spécifique à la base de données. P>
Vous pourrez peut-être vous en contenter en suivant la réponse d'un autre poste Stackoverflow: Créer Java sur la base de données Oracle avec JDBC
Un résumé est: P>
CallableStatement stat = conn.prepareCall(sql); stat.setEscapeProcessing(false); stat.execute();
remplacer '{4}' code> avec
chr (123) || '4' || chr (125) code> dans votre script. P>
Montrez votre requête. Votre requête semble être incorrecte.
ma requête fonctionne dans le crapaud mais pas courir dans mes NetBeans
Si vous voulez obtenir de l'aide, considérez deux choses. 1)
URL inclut "{2}" code>: il ne suffit pas de poster ceci comme message d'erreur. Message d'erreur entier. 2) Vous devriez également afficher la valeur de la variable code> URL code> avant d'appeler
stmt.executequery (URL) code>.
@Ersin, personne ne sera capable d'aider en fonction du fait que cela fonctionne dans le crapaud. Postez la chaîne de relevé.
Remplacez
{} code> ceci avec
() code> et essayez-le.