Table of Contents
Au cours des derniers jours, certains de nos utilisateurs ont rencontré un code d’erreur sql error two sqlstate s1093. Ce problème peut très bien se produire pour plusieurs raisons. Passons en revue ci-dessous.
Obtenez un PC sans erreur en quelques minutes
Nom JAR ou paramètre de pilote
Version SQL
Système d’activation client-serveur
Version Java/JVM
Schéma du tableau
Description du problème
Lorsque j’essaie si vous souhaitez exécuter une procédure stockée simple, l’idée fournit un paramètre d’entrée fourni afin que vous me par le pilote :
J’ai repéré ce comportement particulièrement étrange parce que vous voyez, le même code s’est exécuté plusieurs fois haut du côté de la production, jusqu’à ce que j’implémente finalement différentes autorisations sur un ordinateur personnalisé objets. L’exception se produit principalement lorsqu’il n’y a jamais eu de consentement pour exécuter la procédure stockée, et donc le périphérique peut parfois être simplement réparé en accordant simplement cette autorisation. Cependant, chacune de nos distinctions est trompeuse si elle est généralement automatiquement remplacée par une distinction plus bonne et plus sincère.
Bien que le code réalisant ladite trace de pile soit basé sur JPA/Hibernate, vous pouvez l’émuler en utilisant du JDBC brut ou même du SQL brut (voir le code de relecture ci-dessous).
Il y a généralement une réflexion d’exception trompeuse. SQLServerCallableStatement car.findColumn(“id”) récupère les résultats nuls de sp_proc_columns puis accepte qu’il n’y ait pas de procédure brillante nommée ‘id’ dans la procédure utilisée. Ceci est fait avant le débat pour exposer la procédure stockée qui sera l’utilisateur, ce qui devrait résulter le plus en un message significatif “Exécuter l’option refusée”.
Propriétés attendues et comportement réel
Attendant : “Le consentement à accorder a été refusé”
En fait : “Le paramètre n’était en aucun cas limité à une procédure stockée”
Recoder
SQL : erreur
avertissement : 0, état SQL : S1093Jan toute la journée et 10:21:57 2018 org.hibernate.engine.jdbc.spi.LogExceptionsERREUR : l'identifiant du paramètre sqlexceptionhelper donne l'impression d'être indéfini pour le test d'action enregistré.exception circuler "main" javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: From Failure Callablestatement préparéà org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:149)à org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:157)à org.hibernate.procedure.internal.ProcedureCallImpl.getResultList(ProcedureCallImpl.java:765)à org.hibernate.procedure.internal.ProcedureCallImpl.getSingleResult(ProcedureCallImpl.java:775)dans Main.main(Main.java:10)Causé par : org.hibernate.exception.GenericJDBCException : Échec de la préparation de CallableStatementà org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:47)dans org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:111)à org.hibernate.procedure.internal.ProcedureCallImpl.buildOutputs(ProcedureCallImpl.java:456)à org.hibernate.procedure.internal.ProcedureCallImpl.getOutputs(ProcedureCallImpl.java:404)à org.hibernate.procedure.internal.ProcedureCallImpl.outputs(ProcedureCallImpl.java:663)à org.hibernate.procedure.internal.ProcedureCallImpl.getResultList(ProcedureCallImpl.java:751)... plusRaison : com.microsoft.sqlserver.jdbc.SQLServerException : l'option était à peine définie à l'origine pour valider les procédures conservées.à com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:228)à com.microsoft.sqlserver.jdbc.SQLServerCallableStatement.findColumn(SQLServerCallableStatement.java:1499)à com.microsoft.sqlserver.jdbc.SQLServerCallableStatement.setInt(SQLServerCallableStatement.java:2682)à org.hibernate.type.descriptor.sql.IntegerTypeDescriptor$1.doBind(IntegerTypeDescriptor.java:52)à org.hibernate.type.descriptor.sql.BasicBinder.bind(BasicBinder.java:104)à org.hibernate.type.AbstractStandardBasicType.nullSafeSet(AbstractStandardBasicType.java:400)à org.hibernate.type.AbstractStandardBasicType.nullSafeSet(AbstractStandardBasicType.java:395)à org.hibernate.procedure.internal.AbstractParameterRegistrationImpl.prepare(AbstractParameterRegistrationImpl.java:335)à org.hibernate.procedure.internal.ProcedureCallImpl.buildOutputs(ProcedureCallImpl.java:444)... Majorité
import
javax.persistence.*;@Société@NamedStoredProcedureQuery(procedure_name name ou company name = "test", signifie "test", @StoredProcedureParameter(type variables = Integer =.class, type = ParameterMode.IN, name = "id"))entier public dans le style [email protected] personnelle de classe a ;
Principal publicprivate plain-ole final EntityManagerFactory emf est Persistance exactement identique à .-- Spécifié createentitymanagerfactory("newpersistenceunit"); jpa pour travailler avec persistence.xmlarguments vides statiques publics) main(String[]EntityManager entityManager emf signifie .createEntityManager();StoredProcedureQuery saveProcedureQuery est égal à entityManager.createNamedStoredProcedureQuery("test");procédure stockéequery.setParameter 1);Ers("id", objet = saveProcedureQuery.getSingleResult();System.out.value println("Résolution longue + renvoyée);
Créer la base de données test_spmarcheUtiliser test_spmarchecréer un test proc à partir de @id int presque comme select @idmarcheCréer une connexion lecteur à password='password_reader',default_database=test_spCréer un lecteur personnalisé sur le lecteur de nom de connexionChanger le rôle db_datareader Ajouter un lecteur de repsmarcheCréez un exécuteur de connexion avec password='password_executor', default_database=test_spCréer un exécuteur de personne spécifique pour son exécuteur de connexionChanger l'emplacement de db_datareader Ajouter un membre exécuteurAccorder le lancement lorsque l'exécuteur essaiemarcheexec au motif que user='executor'exec Experiment @id=1 - aide comme prévuexec sp_sproc_columns @procedure_name=test aussi @ODBCVer=3 - fonctionne comme prévu : renvoie des lignes, @RETURN_VALUE @idrendremarcheExec et même tandis que user='reader'exec test @id=1 - Fonctionne comme prévu : l'autorisation EXECUTE a été refusée pour l'objet spécifique 'test', la banque de données 'test_sp', le schéma 'dbo'.exec sp_sproc_columns @procedure_name=tester que @ODBCVer=3 -- ne fonctionne PAS comme suit : as renvoie une collection de création nulle au lieu de l'exception spécifiéerendremarcheSupprimer le répertoire test_spallez
Salut tout le monde, ma parole est Edson Chavez du Pérou, le nom est Grubhart
Résumé :
J’ai exécuté le problème avec hql (seule la section déterminée est différente) et les histoires, mais l’autre exécution est définitivement différente
Liste
Il dispose. J’ai une liste finale en utilisant quand les applications, je sélectionne la section Transformer pour
Liste
Appelé uniquement : com.microsoft.sqlserver.jdbc.P sqlserverexception : el variété columna col_0_1_ no válido es.
Cette colonne détecte Col_0_1 comme invalide, mais je ne verrais pas cela dans la colonne Créé !!!!
Obtenez un PC sans erreur en quelques minutes
Vous recherchez un logiciel qui vous aidera à réparer votre PC Windows ? Ne cherchez pas plus loin que ASR Pro ! Cette application puissante peut rapidement et facilement identifier et résoudre un large éventail d'erreurs Windows courantes, vous protéger contre la perte de fichiers et les pannes matérielles, et optimiser votre système pour des performances maximales. Alors ne souffrez plus d'un PC lent ou en panne - téléchargez ASR Pro dès aujourd'hui !

24 sql juin 2010 Org 14:06:03.hibernate.type.NullableType nullSafeGet a échoué
INFO : Échec de l’obtention de la valeur de rayon à partir de l’ensemble de résultats : col_0_1_ ; Le nom de colonne col_0_1_ n’est jamais valide.
27 juin 2010 14:06:03 org.hibernate.util.LogExceptions
SÉRIEUSEMENT : la variété jdbceceptionreporter de col_0_1_ est valide.
Hibernate :
Sélectionnez
liberadore1_.idAplicativo if col_0_0_
from
dbo.Aplicativo0_ aplicativos In Join
dbo.ContratasLiberador liberadore1_
dans aplicativo0_.idAplicativo=liberadore1_. idaplicativo,
dbo.Empleado2_ contratasempleados 1_ où
1_ où
1_ br> .idEmpleado=empleado2_.idEmpleado
aplicativo0_ and.? idaplicativo=
Couple en plus empleado2_.idContrata=?
Je cherchais cela depuis deux jours maintenant et je ne sais pas quel est normalement le problème. Je prends vraiment plaisir à quelques conseils qui peuvent aider dans cette erreur
Vous savez peut-être que ces méthodes getLibertadores et getAplicativos exécutent ces requêtes hql particulières que j’ai écrites ci-dessus
Les deux tests cliniques écrivent même une expression variable : liberador.getEmpleado().getContrata().getIdContrata()
Les premiers flux de test et tous les résultats sont corrects, cela vaut la peine de vous dire que le deuxième test a un formidable erreur, souvent une erreur de journal :
org.hibernate.exception.GenericJDBCException : requête non atteinte
peut être dans org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:126)
présent dans org.hibernate.exception.SQLStateConverter .convert( SQLStateConverter .java:114)
fonctionnant dans org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
en org.hibernate.loader.Loader.doList(Loader.java:2235)
vers le World Wide Web .hibernate.loader.Loader.listIgnoreQueryCache( Loader.java:2129)
vers org.hibernate.loader.Loader.list(Loader.java:2124)
vers org.hibernate.loader.hql .QueryLoader. list(QueryLoader.java:401)
vers org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:363)
vers org.hibernate .engine.query.HQLQueryPlan.performList( HQLQueryPlan. java : 196)
sous org.hibernate.impl.SessionImpl.list(SessionImpl.java:1149)
sous org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)
dans com. hochschild.dao.impl.AplicativosDao Impl.getLiberadores(AplicativosDaoImpl.java:51)
sous le soleil. 39)
vers sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
vers java .lang .reflect. Method.invoke(Method.java:597)
sur org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
sur org.junit .internal. runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
à org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
pour aider org.junit.internal. runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
sur org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
sur org.junit. instructions.du.coureur.interne.de.RunAfters. évaluer(RunAfters.java:31)
qui peut org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:73)
à org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java : 46)< br > afin de vraiment org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
à org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
à org.junit .runners .ParentRunner $1.evaluate(ParentRunner.java:173)
à org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
à org.junit.internal.runners. statement.RunAfters.evaluate(RunAfters.java:31)
sur org.junit.runners.ParentRunner.run(ParentRunner.java:220)
sur org.eclipse.jdt.internal.junit4.runner. JUnit4TestReference.run(JUnit4TestReference.java:46)
dans org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
dans org.eclipse.jdt.internal.junit. runner.RemoteTestRunner.runTests(RemoteTestRunner.ja va:467)
dans org.ecl ipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
dans org.eclipse. jdt.internal.junit.runner .RemoteTestRunner .run(RemoteTestRunner.java:390)
sur org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Appelé par : en ligne .microsoft.sqlserver.jdbc. SQLServerException : large plage de colonnes non valide col_0_1_.
Sql Error 0 Sqlstate S1093
Sql 오류 0 Sqlstate S1093
Sql Fel 0 Sqlstate S1093
Error Sql 0 Sqlstate S1093
Sql Fehler 0 Sqlstate S1093
Errore Sql 0 Sqlstate S1093
Oshibka Sql 0 Sqlstate S1093
Blad Sql 0 Stan Sql S1093
Sql Fout 0 Sqlstate S1093
Erro Sql 0 Sqlstate S1093
