Je pense que vous parlez de deux choses différentes:
SET NOCOUNT ON
Arrête le message qui montre le nombre de lignes affectées par une déclaration Transact-SQL ou une procédure stockée de retourner en tant que partie de l'ensemble de résultats. Lorsque SET NOCOUNT est activé, le compte n'est pas retourné. Lorsque SET NOCOUNT est désactivé, le compte est retourné.
Je suppose que vous parlez de l'exception Too_Many_Rows
dans Oracle, car l'exception TooManyRowsAffectedException
de Hibernate indique que plus de lignes ont été affectées que prévu. Indique généralement la présence de valeurs "PK" en double dans la table donnée.
L'exception TOO_MANY_ROWS (ORA-01422) se produit lorsqu'une déclaration SELECT INTO retourne plus d'une ligne.
Une exception dans Oracle est gérée dans un programme PL/SQL dans la section des exceptions, qui a son équivalent dans SQL Server avec le TRY CATCH
.
Lorsqu'un programme Oracle contient un bloc d'exception, vous pouvez contrôler la sortie de l'une des nombreuses erreurs spécifiques en changeant le résultat de celles-ci, vous pouvez donc contrôler ce que le programme doit faire quand une erreur se produit. Une exception est essentiellement une expression logique qui répond à une question simple: que faites-vous quand une erreur se produit?
exception
quand ... alors ...
Laissez-moi vous montrer un exemple
SQL> create table t ( c1 number , c2 number ) ;
Table créée.
SQL> alter table t add primary key (c1) ;
Table modifiée.
SQL> set timing off
SQL> declare
begin
insert into t values ( 1 , 1 );
commit ;
insert into t values ( 1 , 2 );
commit;
exception
when dup_val_on_index alors null;
when others alors raise;
fin;
/
Procédure PL/SQL terminée avec succès.
SQL> select * from t ;
C1 C2
---------- ----------
1 1
Comme vous pouvez le voir ci-dessus dans cet exemple, j'ai simplement contrôlé l'exception dup_val_on_index
pour éviter que le programme ne génère une erreur. J'aurais pu faire de même pour une exception too_many_rows
.
Fondamentalement, si vous voulez ignorer l'exception, vous pouvez modifier le code dans votre déclencheur pour éviter qu'une erreur ne soit déclenchée lorsque l'exception se produit. Vous pouvez également désactiver le déclencheur, mais je suppose que cela pourrait ne pas être une option.
Vous devez simplement réaliser que les deux choses sont différentes. SET NOCOUNT ON empêche l'envoi du message des lignes affectées au programme client. Une exception en Oracle PL/SQL est utilisée pour contrôler et gérer une erreur spécifique.