THE PROCEDURE procedure-name HAS NOT YET BEEN CALLED
Explication La procédure identifiée dans une instruction DESCRIBE PROCEDURE ou ASSOCIATE LOCATORS n’a pas encore été appelée dans le processus applicatif ou la procédure a été appelée, mais une validation explicite ou implicite s’est produite avant l’instruction.
Action du système L’instruction ne peut pas être traitée.
Réponse du programmeur Corrigez les instructions de sorte que la syntaxe exacte utilisée pour spécifier le nom de la procédure sur l’instruction CALL soit la même que celle sur ASSOCIATE LOCATOR et/ou DESCRIBE PROCEDURE. Si un nom non qualifié est utilisé pour CALL la procédure, le nom en une partie doit également être utilisé sur les autres instructions. Si l’instruction CALL est faite avec un nom en trois parties et que le serveur actuel est le même que l’emplacement dans le nom en trois parties, la procédure ASSOCIATE LOCATOR ou DESCRIBE peut omettre l’emplacement. Réexécutez les déclarations.
ALTER, DROP, OR REVOKE AFFECTING OBJECT TYPE object-type CANNOT BE PROCESSED BECAUSE OBJECT dependent-object OF TYPE dependent-type IS DEPENDENT ON IT
Explication Une instruction ALTER, DROP ou REVOKE a été émise sur un type d’objet qui est une dépendance pour un ou plusieurs objets. Un type d’objet ne peut pas être supprimé ou révoqué si un autre type d’objet a une dépendance sur ce type d’objet.
object-type Le type d’objet qui est requis et ne peut pas être supprimé. dependent-object Le nom de l’objet qui empêche le type d’objet d’être supprimé ou révoqué. dependent-type Le type de l’objet qui empêche le type d’objet d’être supprimé ou révoqué.
Des exemples d’où la dépendance peut se produire incluent les situations suivantes :
Instruction ALTER ou DROP
Pour une instruction ALTER ou DROP, les dépendances suivantes peuvent exister en fonction de la valeur object-type .
Si object-type est ALIAS :
Une autorisation de ligne ou un masque de colonne référence cet alias. Cela ne se produira que lorsque l’alias est un alias pour une table ou une vue.
Il existe une fonction SQL en ligne qui utilise la séquence dans une expression NEXT VALUE ou PREVIOUS VALUE. Cela ne se produira que lorsque l’alias est un alias pour une séquence.
Si le object-type est COLUMN:
Un index référence cette colonne.
Une contrainte d’unicité fait référence à cette colonne.
Vue qui référence directement ou indirectement cette colonne.
Une contrainte référentielle qui référence cette colonne en tant que clé étrangère.
Si le object-type est ARRAY :
Une fonction ou une procédure stockée utilise le type de tableau défini par l’utilisateur.
Si le object-type est TYPE DISTINCT :
Une colonne d’une table est définie comme ce type distinct.
Un paramètre ou une variable SQL d’une fonction est défini comme ce type distinct.
Un paramètre ou une variable SQL d’une procédure est défini comme ce type distinct.
Une séquence est définie avec ce type distinct comme type de données.
La dépendance peut être sur l’une des fonctions de distribution générées pour un type distinct.
Si le object-type est FUNCTION :
Une autorisation de ligne ou un masque de colonne référence cette fonction.
Une autre fonction est sourcée sur cette fonction.
Une vue utilise cette fonction.
Un package de déclenchement utilise cette fonction.
Une table utilise cette fonction dans une contrainte de vérification ou une valeur par défaut définie par l’utilisateur.
Une définition de table de requête matérialisée utilise cette fonction.
Si le object-type est JAR :
Une fonction ou une procédure stockée utilise ce JAR dans son NOM EXTERNE.
Un autre JAR utilise ce JAR dans son chemin Java™.
Si le object-type est ROLE :
Un contexte de confiance utilise ce rôle.
Le rôle est associé au thread actuel.
Le rôle est le propriétaire de l’objet qui est supprimé.
Le rôle est le concédant des droits ACCESSCTRL, DATAACCESS ou DBADM système.
Le rôle est le concédant de tout privilège ou autorité qui a utilisé l’autorité ACCESSCTRL ou SECADM pour accorder l’octroi.
Dans le cas où object-type est ROLE, cette erreur peut également se produire lors de la révocation des privilèges détenus par ce rôle. Lorsque les privilèges de rôle sont révoqués, la mise en cascade de l’instruction REVOKE peut rencontrer des dépendances qui empêchent le traitement de l’instruction REVOKE.
Si le object-type est SEQUENCE :
Une fonction SQL est définie qui référence cette séquence.
Une procédure SQL est définie qui référence cette séquence.
Une définition de vue est définie qui fait référence à cette séquence.
Un déclencheur est défini qui fait référence à cette séquence.
Si le object-type est SYNONYM :
Une autorisation de ligne ou un masque de colonne fait référence à ce synonyme.
Si le object-type est TABLE :
Une autorisation de ligne ou un masque de colonne fait référence à cette table.
Cette table est la table d’historique d’une table temporelle de période système. Une tentative de suppression de l’espace table ou de la base de données qui contient la table d’historique provoque également cette erreur.
Cette table est la table d’archivage d’une table activée pour l’archivage. Une tentative de suppression de l’espace table ou de la base de données qui contient la table d’archivage provoque également cette erreur.
Si le object-type est VIEW :
Une autorisation de ligne ou un masque de colonne référence cette vue.
Si object-type est une variable globale :
Une fonction SQL référence cette variable globale.
Une vue référence cette variable globale.
Un déclencheur référence cette variable globale.
Instruction REVOKE
Pour une instruction REVOKE, les dépendances suivantes peuvent exister en fonction de la valeur du object-type .
SYSADM est en cours de révocation. Lorsque SYSADM est révoqué, la mise en cascade de l’instruction REVOKE peut rencontrer des dépendances qui empêchent le traitement de l’instruction REVOKE.
Si le object-type est ARRAY :
Une fonction ou une procédure stockée utilise le type de tableau défini par l’utilisateur.
Si le object-type est DISTINCT TYPE :
Une colonne d’une table appartenant au révoqué est définie comme ce type distinct.
Un paramètre ou une variable SQL d’une fonction appartenant au révoqué est défini comme ce type distinct.
Un paramètre ou une variable SQL d’une procédure appartenant au révoqué est défini comme ce type distinct.
Une séquence appartenant au révoqué est définie avec ce type distinct comme type de données.
Si le object-type est FUNCTION :
Une fonction détenue par le révoqué provient de cette fonction.
Une vue détenue par le révoqué utilise cette fonction.
Un package de déclencheur appartenant au révoqué utilise cette fonction.
Une table appartenant au révoqué utilise cette fonction dans une contrainte de vérification ou une valeur par défaut définie par l’utilisateur.
Une table de requête matérialisée appartenant au révoqué utilise cette fonction dans la définition.
Un index qui appartient au révoqué utilise cette fonction.
Si le object-type est JAR :
Une fonction ou une procédure stockée appartenant au révoqué utilise ce JAR dans son EXTERNAL NAME.
Un autre JAR appartenant au révoqué utilise ce JAR dans son chemin Java.
Si le object-type est PROCEDURE :
Une définition de déclencheur appartenant au révoqué contient une instruction CALL avec le nom de cette procédure stockée.
Si le object-type est SEQUENCE :
Une fonction SQL est définie qui référence cette séquence.
Une procédure SQL est définie qui référence cette séquence.
Une définition de vue est définie qui fait référence à cette séquence.
Un déclencheur est défini qui fait référence à cette séquence.
Si object-type est une variable globale :
Une fonction détenue par le révoqué fait référence à cette variable globale.
Une vue détenue par le révoqué fait référence à cette variable globale.
Un déclencheur appartenant au révoqué fait référence à cette variable globale.
Action du système L’instruction ne peut pas être traitée.
Réponse du programmeur Supprimez les dépendances sur cet objet. Par exemple, supprimez l’objet identifié par dépendant-objet. Ensuite, relancez la demande.
SQLSTATE Le SQLSTATE dépend des valeurs de type d’objet et de type dépendant :
Values
SQLSTATE
object-type: JARdependent-type: FUNCTION or PROCEDURE
REFERENCE TO ROUTINE routine-name WAS IDENTIFIED WITHOUT A SIGNATURE, OR BY BOTH SIGNATURE AND SPECIFIC NAME, BUT THE ROUTINE IS NOT UNIQUE WITHIN ITS SCHEMA
Explication Les références à une routine sans signature sont autorisées, mais la routine routine-name identifiée doit être unique dans son schéma et elle ne l’est pas.
Notez également que dans les instructions ALTER FUNCTION, DROP FUNCTION, COMMENT, GRANT et REVOKE (pour EXECUTE sur les fonctions), une référence non qualifiée est qualifiée avec le schéma par défaut, et c’est le schéma où le problème peut être trouvé. Dans la clause SOURCE d’une instruction CREATE FUNCTION, la qualification provient du chemin SQL. Dans ce cas, le premier schéma du chemin contenant une fonction de ce nom avait d’autres fonctions du même nom.
Action du système L’instruction ne peut pas être traitée.
Réponse du programmeur Si l’instruction fait référence à une fonction, effectuez l’une des actions suivantes :
Complétez la signature.
Utilisez le nom SPÉCIFIQUE de la fonction.
Modifiez le chemin SQL.
Si l’instruction fait référence à une procédure, une procédure du même nom existe, mais il existe des différences dans la liste des paramètres. Pour modifier la liste des paramètres de la procédure existante, ajoutez la clause SPECIFIC avec le nom de la procédure à l’instruction CREATE.
THE RESULT TYPE type-1 OF THE SOURCE FUNCTION CANNOT BECAST TO THE RETURNS TYPE type-2 OF THE USER-DEFINED FUNCTION function-name
Explication Pour que CREATE FUNCTION pour une fonction définie par l’utilisateur source soit valide, le type de résultat ( type-1 ) de la fonction source doit pouvoir être converti en type RETURNS ( type-2 ) de la fonction en cours de création. Il n’y a pas de transtypage pris en charge entre ces types de données.
Action du système L’instruction ne peut pas être traitée.
Réponse du programmeur Modifiez le type de données RETURNS ou la fonction SOURCE identifiée afin que le type de résultat de la fonction SOURCE puisse être converti en type de données RETURNS.
A USER DEFINED DATA TYPE CANNOT BE CALLED THE SAME NAME AS A SYSTEM PREDEFINED TYPE (BUILT-IN TYPE)
Explication Le nom d’un type de données à créer a un nom non qualifié qui est le même qu’un type de données prédéfini par le système. Le nom que vous avez spécifié n’est pas autorisé. L’ajout de délimiteurs ne rend pas le nom valide. Les noms suivants sont restreints :
BIGINT
DECIMAL
REF
BINARY
DECFLOAT
ROWID
BLOB
DOUBLE
SMALLINT
BOOLEAN
DOUBLE PRECISION
TIME
CHAR
FLOAT
TIMESTAMP
CHAR VARYING
GRAPHIC
VARBINARY
CHARACTER
INT
VARCHAR
CHARACTER VARYING
INTEGER
VARGRAPHIC
CLOB
LONG VARCHAR
XML
DATALINK
LONG VARGRAPHIC
DATE
NUMERIC
DBCLOB
REAL
DEC
ROWID
Action du système L’instruction ne peut pas être traitée.
Réponse du programmeur Corrigez l’instruction pour utiliser un autre identificateur pour le nom du nouveau type défini par l’utilisateur.
INVOCATION OF FUNCTION OR PROCEDURE name FAILED DUE TO REASON rc
Explication Une routine a été invoquée. L’appel de routine n’a pas été accepté en raison du code de raison Db2 rc. name Le nom de la routine qui a été invoquée. rc Le code anomalie Db2 décrivant la cause de l’échec.
Action du système L’instruction ne peut pas être traitée. Un message DSNX9xx décrivant l’erreur peut s’afficher sur la console système MVS™.
Réponse du programmeur Corrigez la condition décrite par le code anomalie Db2.
SQL CALL STATEMENT SPECIFIED A NULL VALUE FOR INPUT PARAMETER number, BUT THE STORED PROCEDURE DOES NOT SUPPORT NULL VALUES.
Explication Db2 a reçu une instruction SQL CALL pour une procédure stockée et a trouvé une valeur nulle dans la liste des paramètres entrants. La procédure stockée a été définie dans la table du catalogue SYSIBM.SYSROUTINES avec PARAMETER_STYLE de GENERAL, qui spécifie que la routine n’accepte pas les valeurs NULL.
Un appel à une procédure stockée avec une valeur LANGUAGE de JAVA reçoit ce SQLCODE si un paramètre d’entrée dans la procédure stockée Java™ a un type de base Java qui ne peut pas être défini sur une valeur nulle.
number Le numéro de paramètre de la zone ORDINAL dans SYSIBM.SYSPARMS.
Action du système L’instruction ne peut pas être traitée.
Réponse du programmeur Si la procédure stockée ne doit pas accepter les valeurs NULL, modifiez l’application appelante pour fournir une valeur non NULL.
Si la procédure stockée doit accepter des valeurs NULL, utilisez l’instruction ALTER PROCEDURE pour modifier le PARAMETER STYLE de la procédure stockée en DB2SQL ou GENERAL WITH NULLS.
SQL CALL STATEMENT MUST SPECIFY AN OUTPUT VARIABLE FOR PARAMETER number
Explication DB2 a reçu une instruction SQL CALL pour une procédure stockée. Db2 a trouvé la ligne dans la table de catalogue SYSIBM.SYSROUTINES associée au nom de procédure demandé. Cependant, le numéro number de paramètre a été identifié dans la table SYSIBM.SYSPARMS en tant que paramètre OUT ou INOUT. Une variable pouvant être mise à jour doit être fournie dans l’instruction SQL CALL pour un paramètre défini comme OUT ou INOUT.
Une constante ou une expression est un exemple d’argument d’entrée non valide pour une fonction ou un paramètre OUT ou INOUT pour une procédure. Par exemple, supposons qu’une procédure nommée MY_PROC soit définie avec un paramètre OUT. L’appel suivant de la procédure n’est pas valide car l’argument passé au paramètre OUT est une expression constante, à laquelle des valeurs ne peuvent pas être affectées.
CALL MY_PROC(1+2);
number Le numéro de paramètre de la zone ORDINAL dans SYSIBM.SYSPARMS.
Action du système L’instruction ne peut pas être traitée.
Réponse du programmeur Si l’instruction SQL CALL est codée de manière incorrecte, modifiez l’application SQL pour fournir une variable de sortie sur l’instruction SQL CALL.
Si la table SYSIBM.SYSPARMS contient des informations incorrectes, les instructions DROP PROCEDURE et CREATE PROCEDURE doivent être utilisées pour remplacer la définition de catalogue de la procédure stockée.
A VALUE WITH DATA TYPE source-data-type CANNOT BE CAST TO TYPE target-data-type
Explication L’instruction contient un CAST implicite ou explicite, mais la combinaison des types de données source et cible n’est pas prise en charge. Db2 a tenté de convertir une valeur source-data-type en type de données target-data-type. Cette combinaison n’est pas prise en charge.
Cette erreur est également émise pour une instruction qui fait référence à plusieurs schémas de codage, lorsqu’il y a une tentative de transtypage d’une valeur de chaîne avec une procédure de champ. Cette combinaison n’est pas prise en charge.
Cette erreur peut être émise pour une tentative d’utilisation d’une fonctionnalité qui nécessite un paramètre APPLCOMPAT supérieur au paramètre actuel. Le paramètre APPLCOMPAT actuel ne prend pas en charge une fonctionnalité qui a été demandée.
Action du système L’instruction ne peut pas être traitée.
Réponse du programmeur Modifiez le type de données de la source ou de la cible afin que le cast soit pris en charge.
Pour les valeurs de type de données intégrées, un transtypage impliquant une valeur de type distinct définie par l’utilisateur ou un transtypage impliquant une valeur de tableau, consultez Casting entre types de données.
Si un CAST explicite a été spécifié, corrigez la spécification CAST pour spécifier une combinaison prise en charge de types source et cible.