object-typeobject-name ATTEMPTED TO EXECUTE AN SQL STATEMENT WHEN THE DEFINITION OF THE FUNCTION OR PROCEDURE DID NOT SPECIFY THIS ACTION
Explication Une fonction définie par l’utilisateur ou un object-name de procédure stockée a été invoquée et a tenté d’exécuter des instructions SQL, mais la fonction ou la procédure a été créée avec l’option NO SQL.
Dans un environnement de fonctions et de procédures imbriquées, l’option SQL en vigueur est la plus restrictive qui a été spécifiée dans la hiérarchie imbriquée de fonctions et de procédures. L’option d’accès aux données SQL en vigueur ne permet pas de modifier les données.
Action du système L’instruction SQL ne peut pas être exécutée.
Réponse du programmeur Utilisez une instruction ALTER pour modifier la définition de la fonction ou de la procédure afin d’autoriser les instructions SQL, ou supprimez l’instruction SQL défaillante de la fonction ou de la procédure externe.
IN CREATE FUNCTION FOR function-name STATEMENT, THENUMBER OF PARAMETERS DOES NOT MATCH THE NUMBER OF PARAMETERS OF THE SOURCE FUNCTION
Explication Une tentative est en cours pour CRÉER une fonction function-name défini par l’utilisateur qui provient d’une autre fonction. Une des situations suivantes a été identifiée :
La clause SOURCE utilise un nom de fonction (liste de paramètres d’entrée) pour identifier la fonction source, et le nombre de types dans la liste est différent du nombre de paramètres de la fonction en cours de création.
La clause SOURCE utilise une syntaxe différente pour identifier la fonction source, et le nombre de types de cette fonction est différent du nombre de paramètres de la fonction en cours de création.
Action du système L’instruction ne peut pas être traitée.
Réponse du programmeur Le nombre de paramètres pour la fonction SOURCE et pour la fonction en cours de création doit être le même. L’identification de la fonction SOURCE doit être modifiée en :
corriger la liste des paramètres d’entrée
corrigez le nom de la fonction ou le nom spécifique de la fonction pour identifier la fonction appropriée.
Il est également possible que le chemin SQL doive être corrigé pour que la résolution de fonction correcte se produise.
Explication La procédure identifiée dans une instruction ASSOCIATE LOCATORS n’a renvoyé aucun localisateur d’ensemble de résultats.
Action du système L’instruction ne peut pas être traitée.
Réponse du programmeur Déterminez si les localisateurs de jeu de résultats sont renvoyés à partir de la procédure identifiée à l’aide de l’instruction DESCRIBE PROCEDURE.
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.