Tous les articles par Mr COBOL

CODE RETOUR -332

CHARACTER CONVERSION BETWEEN CCSID from-ccsid TO to-ccsid REQUESTED BY reason-code IS NOT SUPPORTED

Explication :
L’opération a nécessité une conversion entre deux CCSID différents. Aucun support de conversion n’a été trouvé.

from-ccsid
Identifie le jeu de caractères codés de la chaîne à convertir.
to-ccsid
Identifie le jeu de caractères codés vers lequel il doit être converti.
reason-code
Décrit les codes de raison renvoyés par Db2. Les codes de motif renvoyés par Db2 commencent par « DSN » et identifient le contexte dans lequel la conversion a été demandée. Les valeurs autres que celles commençant par « DSN » sont renvoyées par d’autres plates-formes Db2 et sont décrites dans la documentation de la plate-forme.

Action du système :
L’instruction ne peut pas être traitée.

Réponse du programmeur :
Si la demande de conversion est correcte, consultez les informations sur la façon d’ajouter la prise en charge de la conversion.

ETAT SQL :
57017

CODE RETOUR -331

CHARACTER CONVERSION CANNOT BE PERFORMED BECAUSE A STRING, POSITION position-number, CANNOT BE CONVERTED FROM source-ccsid TO target-ccsid, REASON reason-code

Explication :
L’opération a nécessité la conversion de source-ccsid en target-ccsid et une erreur de conversion s’est produite. Le type d’erreur est indiqué par le reason-code :

8

pour l’exception de longueur (par exemple, l’extension requise pour les données PC MIXED dépasse la longueur maximale de la chaîne).

12

pour un code-point invalide (par exemple, utilisation de l’option ERRORBYTE de SYSSTRINGS).

16

pour exception de formulaire (par exemple, données MIXED non valides).

20

pour erreur de procédure de conversion (par exemple, un exit a défini le champ de contrôle de longueur de la chaîne sur une valeur non valide). Vous pouvez trouver le nom de la procédure dans la ligne SYSIBM.SYSSTRINGS avec INCCSID=source-ccsid et OUTCCSID=target-ccsid dans la colonne TRANSPROC.

Le position-number, s’il est fourni (différent de zéro), est l’ordre de la variable de sortie dans la SQLDA.

Action du système :
L’instruction ne peut pas être traitée.

Réponse du programmeur :
Effectuez l’une des actions suivantes en fonction du reason-code :

8

Étendez la longueur maximale de la colonne de résultat pour permettre l’expansion qui se produit lorsque la chaîne est convertie.

12

Modifiez la table de conversion pour accepter le code-point ou modifiez les données pour éliminer le code-point.

16

Si la chaîne est décrite comme des données MIXED, modifiez sa description ou modifiez la chaîne pour qu’elle se conforme aux règles des données MIXED bien formées.

20

Corrigez la procédure de conversion.

Une alternative à ces actions correctives consiste à fournir une variable indicatrice afin qu’une valeur nulle et un avertissement puissent être renvoyés plutôt qu’une erreur.

ETATSQL :
22021

CODE RETOUR -330

A STRING CANNOT BE USED BECAUSE IT CANNOT BE PROCESSED. REASON reason-code, CHARACTER code-point, HOST VARIABLE position-number

Explication :

Une erreur s’est produite lors du traitement d’une chaîne ou lors de la conversion d’une chaîne. Le type d’erreur est indiqué par le reason-code :

8

Exception de longueur (par exemple, l’extension requise pour les données PC MIXED dépasse la longueur maximale de la chaîne).

12

Point de code non valide (par exemple, utilisation de l’option ERRORBYTE de SYSSTRINGS).

16

Exception de formulaire (par exemple, données MIXTES non valides).

20

Erreur de procédure de conversion (par exemple, un exit a défini le champ de contrôle de longueur de la chaîne sur une valeur non valide).

24

Caractère SBCS trouvé dans la chaîne contenue dans une variable hôte wchar_t ou sqldbchar.

Si le reason-code est 12, code-point est le point de code invalide. Sinon, code-point est soit vide, soit un code de raison supplémentaire renvoyé par une sortie.

Si la chaîne est la valeur d’une variable hôte d’entrée, le position-number est l’ordre de la variable dans la SQLDA. Si la chaîne n’est pas la valeur d’une variable hôte, le position-number est vide.

Action du système :
L’instruction ne peut pas être traitée.

Réponse du programmeur :

Effectuez l’une des actions suivantes en fonction du code anomalie :

8

Étendez la longueur maximale de la variable hôte pour permettre l’expansion qui se produit lorsque la chaîne est convertie.

12

Modifiez la table de conversion pour accepter le code-point ou les données pour éliminer le code-point.

16

Si la chaîne est décrite comme des données MIXED, modifiez sa description ou modifiez la chaîne pour qu’elle se conforme aux règles des données mixtes bien formées.

20

Corrigez la procédure de conversion.

24

Supprimez le caractère SBCS de la chaîne graphique.

ETATSQL :
22021

CODE RETOUR -327

THE ROW CANNOT BE INSERTED BECAUSE IT IS OUTSIDE THE BOUND OF THE PARTITION RANGE FOR THE LAST PARTITION

Explication :
Lorsqu’une ligne est insérée, la valeur de clé de partition calculée pour la nouvelle ligne doit être dans les limites d’une partition.

Action du système :
L’instruction ne peut pas être traitée.

Réponse du programmeur :
Corrigez l’instruction pour spécifier une valeur pour la clé de partition qui se trouve dans les limites de la dernière partition de l’espace table partitionné.

ETATSQL :
22525

CODE RETOUR -311

THE LENGTH OF INPUT HOST VARIABLE NUMBER position-number IS NEGATIVE OR GREATER THAN THE MAXIMUM

Explication :
Lors de l’évaluation, la spécification de longueur pour la variable de chaîne hôte d’entrée, dont l’entrée dans la SQLDA est indiquée par le numéro de position, était négative ou supérieure au maximum.

Action du système :
L’instruction ne peut pas être traitée.

Réponse du programmeur :
Corrigez le programme pour vous assurer que les longueurs de toutes les variables de chaîne hôte ne sont pas négatives ou qu’elles ne sont pas supérieures à la longueur maximale autorisée.

ETATSQL :
22501

CODE RETOUR -310

DECIMAL HOST VARIABLE OR PARAMETER number CONTAINS NON-DECIMAL DATA

Explication :
Db2 a reçu des données non décimales d’une application (sous la forme d’une variable hôte), d’une fonction ou d’une procédure stockée (sous la forme d’un paramètre qui a été transmis à ou à partir d’une fonction ou d’une procédure stockée).

number
Identifie soit le numéro de la variable hôte (si le message est émis à la suite d’une instruction d’affectation FETCH, INSERT, UPDATE, MERGE, DELETE, SELECT, VALUES INTO ou SET), soit le numéro de paramètre (si le message est émis en tant que résultat de l’invocation d’une fonction ou d’une instruction CALL).

Action du système :
L’instruction ne peut pas être traitée.

Réponse du programmeur :
Corrigez le programme d’application ou la procédure stockée. Assurez-vous que toutes les variables ou paramètres décimaux contiennent des nombres décimaux condensés System/370 valides.

ETATSQL :
22023

CODE RETOUR -300

THE STRING CONTAINED IN HOST VARIABLE OR PARAMETER position-number IS NOT NUL-TERMINATED

Explication :
Une variable ou un paramètre hôte n’est pas valide. Son entrée dans la SQLDA est indiquée par position-number. La variable ou le paramètre hôte est une variable de chaîne C qui est l’une des suivantes :

  • Utilisé comme paramètre d’entrée pour une procédure stockée ou une fonction.
  • Renvoyé en tant que paramètre de sortie à partir d’une procédure stockée ou d’une fonction.
  • Référencé en tant que variable d’entrée dans une instruction Embedded SQL.
  • Utilisé pour fournir une valeur pour un marqueur de paramètre d’une instruction SQL dynamique.

Si le type de données de la variable est une chaîne de caractères, il n’est pas valide car il n’inclut pas X’00’. Si le type de données de la variable est une chaîne graphique, il n’est pas valide car il n’inclut pas X’0000′.

Action du système :
L’instruction ne peut pas être traitée.

Réponse du programmeur :
Ajoutez un NUL-terminator à la fin de la chaîne.

ETATSQL :
22024

CODE RETOUR -270

FUNCTION NOT SUPPORTED

Explication :
L’instruction ne peut pas être traitée car elle enfreint une ou plusieurs des restrictions suivantes :

ALTER FUNCTION statement

  • Une fonction masquée ne peut pas être modifiée.

ALTER INDEX or CREATE INDEX statements

  • Une instruction CREATE INDEX ou ALTER INDEX ne doit pas spécifier PADDED pour un index XML ou un index sur une colonne VARBINARY.
  • Une instruction CREATE INDEX ou ALTER INDEX ne doit pas spécifier une colonne définie comme NOT NULL lorsque l’index est défini avec EXCLUDE NULL KEYS.
  • Une instruction CREATE INDEX ne doit pas spécifier UNIQUE, BUSINESS_TIME WITHOUT OVERLAPS, une spécification d’index XML ou une expression de clé lorsque l’index est défini avec EXCLUDE NULL KEYS.
  • Une instruction CREATE INDEX ne doit pas spécifier EXCLUDE NULL KEYS lorsque l’index est un index de partitionnement.
  • Une instruction CREATE INDEX ne doit pas spécifier ASC, DESC ou RANDOM pour un index XML.
  • Une instruction CREATE INDEX ne doit pas spécifier DESC ou RANDOM si l’index est un index basé sur une expression.
  • Une instruction CREATE INDEX ne doit pas spécifier DESC, PADDED ou RANDOM pour une colonne Unicode Db2 11 dans une table EBCDIC.
  • Une instruction CREATE INDEX ne doit pas spécifier INCLUDE ou CLUSTER pour un index basé sur une expression.
  • Une instruction CREATE INDEX ne doit pas spécifier de colonne BINARY ou VARBINARY dans une clé de partitionnement.
  • Une instruction CREATE ou ALTER INDEX ne doit pas spécifier RANDOM pour un index qui contient une colonne définie comme TIMESTAMP WITH TIME ZONE ou DECFLOAT.
  • Une instruction CREATE INDEX doit spécifier DEFER YES pour un index spatial.
  • Une instruction CREATE INDEX ne doit pas spécifier le nom d’une table temporaire globale déclarée.
  • Une colonne ne peut avoir qu’un seul index spatial.
  • Lorsqu’un index spatial est créé sur une colonne de BLOB ou de type distinct sur BLOB, l’espace table LOB qui stocke la colonne BLOB doit exister.
  • Un index spatial ne peut pas être modifié.
  • La limite interne de 30 000 octets pour le descripteur d’objet versionné (OBD) a été dépassée. Cette condition peut se produire lorsqu’une instruction ALTER INDEX a généré une nouvelle version d’index.
  • A CREATE INDEX DSSIZE et CREATE INDEX PART DSSIZE ne peuvent pas être spécifiés tous les deux dans la même instruction.

ALTER PROCEDURE statement

  • Une procédure obscurcie ne peut pas être modifiée.

ALTER TABLE or CREATE TABLE statements

  • Une instruction ALTER TABLE ne doit pas tenter de modifier une colonne VARBINARY en BINARY si cette colonne fait partie d’un index unique.
  • Une instruction ALTER TABLE ne doit pas spécifier de table de requête matérialisée dans une clause ADD CLONE. Modifiez la table de requête matérialisée en une table de base avant de modifier la table.
  • Une instruction ALTER TABLE ou CREATE TABLE ne peut spécifier la clause KEY LABEL que pour les tables d’un espace table universel ou partitionné.
  • Une instruction ALTER TABLE avec la clause ALTER COLUMN SET DATA TYPE ne doit pas spécifier VARBINARY ou BINARY pour le nouveau type de données lorsque les deux conditions suivantes sont vraies :
    1. La colonne est une colonne de clé de partitionnement.
    2. Le type de données existant est CHAR ou VARCHAR FOR BIT DATA.
  • Une table de requête matérialisée ne peut pas être clonée pour ALTER TABLE.
  • La table de résultats du fullselect dans la clause as-result-table d’une instruction CREATE TABLE inclut des données codées avec différents ensembles de CCSID. La table de résultats ne doit pas utiliser plusieurs ensembles de CCSID.
  • La limite interne de 30 000 octets pour le descripteur d’objet versionné (OBD) a été dépassée. Cette condition peut se produire lorsqu’une instruction de table ALTER génère une nouvelle version de table ou une nouvelle version d’index, ou est exécutée sur une table versionnée.
  • INLINE LENGTH n’est pas autorisé pour la colonne LOB car l’espace table n’est pas un espace table universel.
  • Une instruction ALTER TABLE a été spécifiée avec une clause ADD PERIOD et un masque de colonne ou une autorisation de ligne est défini pour la table. Une période ne peut pas être ajoutée à une table pour laquelle un masque de colonne ou une autorisation de ligne est défini.
  • La table ou la vue spécifiée dans une clause LIKE ne doit pas contenir de colonne Unicode Db2 11 dans une table EBCDIC.
  • Une instruction ALTER TABLE ne doit pas spécifier de clause ADD PARTITION BY RANGE si la table est EBCDIC et qu’elle contient une colonne Db2 11 Unicode.
  • Une instruction ALTER TABLE ne doit pas spécifier de clause IMPLICITLY HIDDEN dans une clause ADD COLUMN pour une colonne définie en tant que ROWID ou un type distinct basé sur un ROWID.
  • Une instruction ALTER TABLE ou CREATE TABLE qui définit une colonne d’expression générée doit spécifier le même type de données que le type de résultat de l’expression. Pour une colonne définie comme DATA CHANGE OPERATION, CHAR(1) doit être spécifié comme type de données.
  • Une instruction CREATE TABLE ne doit pas contenir de clause LIKE ni de clause IN ACCELERATOR.
  • Une instruction CREATE TABLE ne doit pas contenir de clause LIKE faisant référence à une table d’accélérateur uniquement.
  • Une instruction CREATE TABLE ne doit pas contenir de clause AS fullselect ni de clause IN ACCELERATOR.
  • Une instruction CREATE TABLE ne doit pas contenir de clause AS fullselect où fullselect fait référence à une table d’accélérateur uniquement.
  • Une instruction CREATE TABLE ne doit pas contenir de définition de requête matérialisée ni de clause IN ACCELERATOR.
  • Une instruction CREATE ou ALTER TABLE ne doit pas définir de colonne Unicode dans une table EBCDIC si la table est une table d’accélérateur uniquement.
  • CREATE TABLE avec PAGENUM RELATIVE ou dans un espace table avec PAGENUM RELATIVE doit avoir des lignes avec une taille de données minimale de 3 octets.
  • Une instruction ALTER TABLE ou CREATE TABLE ne doit pas spécifier de clause KEY LABEL pour une table dans un espace table multi-tables. Si la table réside dans un espace table à plusieurs tables, envisagez d’utiliser la spécification d’étiquette de clé au niveau du groupe de stockage.

IALTER TABLE ALTER COLUMN SET DATATYPE statement

  • La modification du type de données d’une colonne dans une table avec PAGENUM RELATIVE n’est pas autorisée si la taille minimale des données d’une ligne est inférieure à 3 octets.

ALTER TABLE DROP COLUMN statement

  • La suppression d’une colonne dans une table avec PAGENUM RELATIVE n’est pas autorisée si la taille minimale des données d’une ligne est inférieure à 3 octets.

ALTER TABLESPACE statements

  • Un ALTER TABLESPACE DSSIZE et un ALTER TABLESPACE PART DSSIZE ne peuvent pas être spécifiés tous les deux dans la même instruction.
  • Un ALTER TABLESPACE PAGENUM RELATIVE n’est pas autorisé lorsque l’espace table contient une table dans laquelle la taille minimale des données de la ligne est inférieure à 3 octets.

CREATE GLOBAL TEMPORARY TABLE statements

  • La table table ou view spécifiée dans une clause LIKE ne doit pas contenir de colonne Unicode Db2 11 dans une table EBCDIC.

DECLARE GLOBAL TEMPORARY TABLE statements

  • La table de résultats du fullselect dans la clause as-result-table d’une instruction DECLARE GLOBAL TEMPORARY TABLE inclut des données codées avec différents ensembles de CCSID. La table de résultats ne doit pas utiliser plusieurs ensembles CCSID, autres que EBCDIC et Unicode.
  • Une colonne BINARY ou VARBINARY ne peut pas être spécifiée dans une clé de partitionnement.
  • La table table ou view spécifiée dans une clause LIKE ne doit pas contenir de colonne Unicode Db2 11 dans une table EBCDIC.
  • La clause LIKE d’une DECLARE GLOBAL TEMPORARY TABLE ne doit pas faire référence à une table d’accélérateur uniquement.

CREATE FUNCTION statements

  • Une instruction CREATE FUNCTION ne doit pas tenter de définir une fonction de table SQL avec l’un des éléments suivants :
  • Un corps de fonction qui référence une colonne définie avec une procédure de champ
  • Une clause RETURNS qui fait référence à une colonne définie avec une procédure de champ.

CREATE MASK statements

  • Une instruction CREATE MASK ne doit pas définir de masque pour une table d’accélérateur uniquement.

CREATE PERMISSION statements

  • Une instruction CREATE PERMISSION ne doit pas définir d’autorisation de colonne pour une table d’accélérateur uniquement.

CREATE PROCEDURE statement

  • Une instruction CREATE PROCEDURE ne doit pas être utilisée pour ajouter ou remplacer une version d’une procédure obscurcie.

CREATE VARIABLE statements

  • Une instruction CREATE VARIABLE ne peut pas spécifier une valeur par défaut des registres spéciaux CURRENT TEMPORAL SYSTEM_TIME ou CURRENT TEMPORAL BUSINESS_TIME.

CREATE VIEW or ALTER VIEW REGENERATE statements

  • Toutes les vues et fonctions SQL référencées dans une définition de vue doivent avoir le même mode d’arrondi que la vue en cours de définition. Les fonctions SQL qui ont des informations de mode d’arrondi non définies sont ignorées lors de la vérification du mode d’arrondi.

FETCH statements

  • Une instruction FETCH ne peut pas inclure WITH CONTINUE ou CURRENT CONTINUE dans une routine SQL.

GET DIAGNOSTICS statements

  • Le mot clé STACKED ne peut pas être spécifié pour une instruction GET DIAGNOSTICS dans une routine SQL externe. Le mot clé STACKED n’est pris en charge que dans une routine SQL native.

MERGE statements

  • Une colonne de la table source est référencée plusieurs fois dans une opération de modification de l’instruction MERGE. Lorsque des indicateurs étendus sont actifs, une colonne de la table source ne doit pas être référencée plus d’une fois dans une opération de modification. Une opération de modification est une opération de mise à jour ou une opération d’insertion. Les indicateurs étendus sont en vigueur lorsque EXTENDEDINDICATOR(YES) est utilisé ou lorsque l’attribut de préparation WITH EXTENDED INDICATORS est spécifié pour l’instruction MERGE.
  • La conditionsearch-condition  de la clause ON d’une instruction MERGE ne doit pas inclure un prédicat IN qui inclut un fullselect, ou un prédicat quantifié qui inclut un fullselect.
  • La condition matching-condition de la clause WHEN MATCHED ou WHEN NOT MATCHED d’une instruction MERGE ne doit pas inclure un prédicat IN qui inclut un fullselect, ou un prédicat quantifié qui inclut un fullselect.
  • Une instruction MERGE qui contient une opération de suppression ne peut pas être utilisée comme data-change-table-reference dans la clause FROM de la clause SELECT externe d’un fullselect.

TRIGGER statements

  • Une instruction CREATE TRIGGER ne doit pas spécifier une vue qui possède l’un des types de colonnes suivants :
    1. Colonnes ROWID
    2. Colonnes LOB
    3. Colonnes XML
    4. Défini (directement ou indirectement) en tant que colonnes d’identité
    5. Colonnes d’étiquettes de sécurité
    6. Colonnes d’horodatage de changement de ligne
    7. Colonnes de début de ligne
    8. Colonnes de fin de ligne
    9. Colonnes ID de début de transaction
    10. Expressions
    11. Colonnes des tableaux de résultats qui impliquent des opérateurs ensemblistes
  • Une instruction CREATE [ou ALTER] TRIGGER ne doit pas référencer une table d’accélérateur uniquement dans le corps du déclencheur.
  • Une instruction CREATE TRIGGER avec la clause INSTEAD OF spécifiée ne doit pas référencer une vue qui référence une table d’accélérateur uniquement dans le corps du déclencheur.
  • La variable de transition spécifiée ne prend pas en charge XML.
  • Une instruction CREATE TABLE dans le corps d’un déclencheur ne doit pas définir une colonne en tant que LOB ou XML.
  • La chaîne d’instruction pour une instruction PREPARE ne doit pas être une instruction ALLOCATE CURSOR si l’instruction PREPARE est émise dans le corps d’un déclencheur.
  • Une instruction ALTER TRIGGER (de base) ne doit pas spécifier une option autre que SECURED ou NOT SECURED.
  • Une instruction ALTER TRIGGER (avancée) ne peut être préparée que dynamiquement.
  • Une instruction CREATE TRIGGER (avancé) ou ALTER TRIGGER (avancé) ne peut pas être traitée comme une instruction statique.
  • Un déclencheur obscurci ne peut pas être modifié.

UPDATE statements:

Certaines instructions UPDATE qui modifient les données dans une colonne pour laquelle un déclencheur BEFORE UPDATE est défini peuvent entraîner ce code dans certaines circonstances.

Si une instruction BEFORE UPDATE TRIGGER contient une clause SET pour une ou plusieurs colonnes qui participent à l’index du chemin d’accès, l’exécution de l’instruction BEFORE UPDATE TRIGGER peut entraîner une nouvelle qualification de la ligne. Cette situation se produit lorsque toutes les conditions suivantes sont remplies :

  • DB2 utilise un chemin d’accès à l’index pour localiser les lignes pouvant être mises à jour.
  • Un BEFORE TRIGGER existe sur la table à laquelle appartiennent les lignes.
  • Le BEFORE TRIGGER met à jour les valeurs d’une ou plusieurs colonnes qui participent à l’index du chemin d’accès.

Cette situation peut se produire à la fois avec les mises à jour recherchées et les mises à jour positionnées (mises à jour qui utilisent l’instruction UPDATE WHERE CURRENT OF CURSOR). Ce code est émis pour les instructions sensibles à ce problème, même si les données impliquées dans la mise à jour ne provoqueraient pas de requalification. Voir Réponse du programmeur pour plus d’informations sur la gestion des erreurs de requalification.

Autres restrictions pour les instructions SQL :

  • Les vues et les fonctions SQL référencées dans une instruction SQL doivent avoir le même mode d’arrondi que l’instruction SQL. Les vues et les fonctions SQL qui ont des informations de mode d’arrondi non définies sont ignorées lors de la vérification du mode d’arrondi.
  • Dans une sous-sélection, la liste de sélection ne peut pas contenir de colonne XML si OLD TABLE est spécifié.
  • La fonction intégrée RID et l’expression ROW CHANGE TOKEN ne doivent pas être spécifiées dans une sous-sélection lorsque cette sous-sélection inclut directement l’un des opérateurs suivants :
    • LEFT OUTER JOIN
    • RIGHT OUTER JOIN
    • FULL OUTER JOIN
  • L’expression ROW CHANGE TIMESTAMP peut être spécifiée uniquement dans une sous-sélection lorsque les conditions suivantes sont vraies :
    • Cette sous-sélection inclut directement un opérateur LEFT OUTER JOIN, RIGHT OUTER JOIN ou FULL OUTER JOIN.
    • L’indicateur de table identifie une table de base qui contient une colonne d’horodatage de changement de ligne.
    • Une fonction de table SQL ne doit pas être appelée avec une expression dérivée d’une colonne définie avec une procédure de champ.
  • Un argument d’entrée pour une fonction de table SQL ne doit pas contenir de sélection complète scalaire, de fonction ou de référence de colonne, que ce soit directement ou dans le cadre d’une expression.
  • Aucune combinaison de ARRAY_AGG, LISTAGG ou XMLAGG ne peut être spécifiée ensemble dans la même instruction.
  • L’instruction SQL inclut une utilisation de UNNEST et un argument de l’opérateur UNNEST est un appel de fonction de tableau qui inclut une référence à une colonne. Un argument d’appel de fonction de tableau ne doit pas inclure de référence à une colonne d’une expression de table commune.
  • Une requête ou une instruction SELECT INTO, INSERT, UPDATE, DELETE ou MERGE ne doit pas référencer des tables ou des vues qui incluent à la fois des périodes BUSINESS_TIME inclusivement et des périodes BUSINESS_TIME inclusives.
  • Dans une instruction DELETE ou UPDATE, une clause FROM expression1 TO expression2 ne doit pas être spécifiée pour une période inclusive-inclusive.
  • Dans une instruction DELETE ou UPDATE, une clause BETWEEN expression1 AND expression2 ne doit pas être spécifiée pour une période inclusive-exclusive.

BIND PACKAGE command

Une commande BIND PACKAGE avec l’option DEPLOY ne doit pas être spécifiée dans les situations suivantes :

  • Un package pour une routine qui est obscurcie.
  • Package d’une version d’une procédure pour laquelle l’instruction CREATE PROCEDURE contient une clause OR REPLACE ou SPECIFIC.

Action du système :
L’instruction ne peut pas être traitée.

Réponse du programmeur :
Corrigez la syntaxe et soumettez à nouveau l’instruction. Pour les erreurs suivantes, effectuez les actions spécifiées.

Erreurs causées par un type de données XML
Si cette erreur est causée par un type de données XML, saisissez les données XML dans l’une des fonctions qui acceptent les entrées XML. Stockez la sortie de la fonction dans la base de données ou renvoyez-la à l’application.
Erreurs causées par le mode d’arrondi
Si cette erreur est causée par différents modes d’arrondi, effectuez l’une des actions suivantes :

Si une vue ou une fonction SQL a un mode d’arrondi différent de celui de l’instruction SQL de référence :
Modifiez l’instruction SQL ou modifiez le mode d’arrondi en vigueur pour vous assurer que toutes les vues ou fonctions SQL référencées ont le même mode d’arrondi que l’instruction SQL. Une nouvelle vue, une fonction SQL ou les deux peuvent être nécessaires pour correspondre au mode d’arrondi de l’instruction SQL.

Si une vue ou une fonction SQL a un mode d’arrondi différent de la vue de référencement lors de l’exécution de CREATE VIEW :
Modifiez la définition de la vue ou modifiez le mode d’arrondi en vigueur pour vous assurer que toutes les vues ou fonctions SQL référencées ont le même mode d’arrondi que la vue de référencement. Une nouvelle vue, une fonction SQL ou les deux peuvent être nécessaires pour correspondre au mode d’arrondi de la vue de référencement.

Si une vue ou une fonction SQL a un mode d’arrondi différent de la vue de référencement lors de l’exécution de ALTER VIEW REGENERATE :
Modifiez le mode d’arrondi en vigueur pour vous assurer que toutes les vues ou fonctions SQL référencées ont le même mode d’arrondi que la vue de référencement. La vue pour ALTER VIEW REGENERATE peut toujours échouer. Dans ce cas, supprimez et recréez la vue avec une définition de vue différente qui fait référence à une nouvelle vue ou fonction SQL.

Erreurs causées par la requalification des données
Si le problème est dû à la requalification des données définie par une instruction BEFORE UPDATE TRIGGER, effectuez l’une des actions suivantes :

  • Assurez-vous que les colonnes modifiées par le déclencheur sont également modifiées par l’instruction UPDATE elle-même. Modifiez l’instruction UPDATE pour inclure une clause factice du type ncolumn-name=column-name pour chaque colonne que le BEFORE UPDATE TRIGGER modifie.
  • Rebind avec des astuces pour que le chemin d’accès RIDLIST utilise le même index.

Erreurs causées par la taille de l’OBDREC
Si la taille de l’OBDREC dépasse 30 000 octets, vous pourrez peut-être récupérer de l’espace dans l’OBD en réduisant la taille de la valeur par défaut pour les colonnes de longueur variable, le cas échéant.

ETATSQL :
42997

CODE RETOUR -254

A NON-ATOMIC statement STATEMENT ATTEMPTED TO PROCESS MULTIPLE ROWS OF DATA, BUT ERRORS OCCURRED

Explication :
Une instruction statement non atomique spécifiait que plusieurs lignes de données devaient être traitées, mais des erreurs se sont produites lors du traitement de ces lignes de données. Utilisez GET DIAGNOSTICS pour obtenir des informations sur les conditions d’erreur et d’avertissement qui se sont produites.

Action du système :
L’instruction ne peut pas être traitée.

Réponse du programmeur :
Analyser les conditions d’erreur et d’avertissement pour déterminer les actions correctives appropriées.

ETATSQL :
22530

CODE RETOUR -253

A NON-ATOMIC statement STATEMENT SUCCESSFULLY COMPLETED FOR SOME OF THE REQUESTED ROWS, POSSIBLY WITH WARNINGS, AND ONE OR MORE ERRORS

Explication :
Une instruction  statement non atomique a traité avec succès certaines des lignes de données demandées. Cependant, une ou plusieurs conditions d’erreur se sont produites et certains avertissements peuvent également s’être produits. Utilisez GET DIAGNOSTICS pour obtenir des informations sur les conditions d’erreur et d’avertissement qui se sont produites.

Action du système :
Une ou plusieurs lignes ont été traitées avec succès, mais une ou plusieurs erreurs ou avertissements se sont également produits.

Réponse du programmeur :
Analysez les conditions d’erreur et d’avertissement pour déterminer si l’instruction doit être annulée.

ETATSQL :
22529