Fonctions d'accès à la base de données Oracle

Extraire des valeurs d'une base de données Oracle

Contrôle de valeurs dans une base de données Oracle

À propos des Fonctions d'accès à une base Oracle

Vous utilisez les Fonctions d'accès aux bases de données Oracle pour retrouver des valeurs et contrôler l'existence de valeurs dans une table de référence Oracle. Ces fonctions se basent sur des appels externes que vous devez programmer auparavant. Pour plus d'information, reportez-vous au Manuel des exits et des appels externes du Rule Engine  AccountingIntegrator Enabler.

La syntaxe à utiliser dépend du module auquel vous voulez accéder :

  • extraire des valeurs d'une base de données Oracle :
    • retrouver la première ligne du résultat d'une requête de sélection mono-colonne :
      $SEARCH
      ("LLT";"75";"Select")
    • retrouver la valeur renvoyée par une procédure stockée Oracle :
      $SEARCH
      ("LLT";"76";Argument&":Procedure")
  • Contrôler des valeurs dans une base de données Oracle :
    • contrôler l'existence d'une valeur dans la liste renvoyée par une requête de sélection mono-colonne :
      $CHECK
      ("77";Argument&":Select")
    • contrôler l'existence d'une valeur renvoyée par une procédure Oracle :
      $CHECK
      ("78";Argument&":Procedure")

Pour plus d'information, reportez-vous aux fonctions $SEARCH et$CHECK.

Remarque : il s'agit de fonctions différentes des fonctions d'accès aux Tables que vous utilisez pour travailler avec des objets Table créés à l'intérieur de Composer.

$SEARCH("LLT";"75";"Select")

Description

$SEARCH("lllt";"75";"Select") Retrouve la première ligne renvoyée par une requête de sélection mono-colonne

Syntaxe

$SEARCH("lllt";"75";"Select")

Valeur de retour

En cas d'erreur SQL, le CRE est en erreur et le Composer ajoute un message d'erreur Oracle au message de rejet.  

Remarque : il est recommandé de stocker vos requêtes dans une table interne. Les requêtes sont alors validées avant d'être stockées, et il y a moins de risque d'erreur lors de l'utilisation de la requête.

Paramètre

lllt

  • lll représente la longueur de la valeur renvoyée par l'appel (la longueur maximum dépend du type de données)
  • t représente le type de données de la valeur renvoyée par l'appel.

75

correspond au point d'entrée spécifique prédéfini pour les appels externes permettant d'accéder à des données contenues dans une base de données Oracle.

Select

est la requête à exécuter écrite entre guillemets. Puisque le caractère (") est utilisé comme séparateur, vous ne devez pas l'utiliser à l'intérieur de la requête.

Exemple

Dans cet exemple, dans la table t_produit, la description du produit est lue au moyen du code produit contenu dans le champ CPROD fourni par le CRE traité.

$SEARCH ("050A"; "75"; "SELECT label FROM t_product WHERE product_code = "&CPROD)

$SEARCH("LLT";"76";Argument&":Procedure")

Description

$SEARCH("lllt";"76";Argument&":Procedure") retrouve la valeur renvoyée par une procédure stockée Oracle .

Utilisez cette commande pour obtenir la valeur renvoyée par une procédure Oracle qui possède un prototype au format suivant :

NOM_PROCEDURE  (IN Paramètre_In VARCHAR

OUT Paramètre_Out VARCHAR

OUT Code_retour NUMBER)

Syntaxe

$SEARCH("lllt";"76";Argument&":Procedure")

Valeur de retour

En cas d'erreur SQL, le CRE est en erreur et le Composer ajoute un message d'erreur Oracle au message de rejet.

Paramètre

lllt

76

correspond au point d'entrée spécifique prédéfini pour les appels externes permettant d'accéder à des données contenues dans une base de données Oracle.

Argument&":Procedure" est la concaténation de la valeur de Parameter_Inet du nom de la procédure précédé par deux points (:). Puisque le caractère (:) et (") sont utilisés comme séparateurs, vous ne devez pas les utiliser dans le nom de la procédure ou du paramètre.

Exemple

La description du produit est lue par le biais du code produit contenu dans le champ CPROD (retrouvé dans le CRE) en utilisant la procédure proc_libprod.

$SEARCH ("050A";"76"; CPROD&":proc_libprod")

$CHECK("77";Argument&":Select")

Description

$CHECK("77";Argument&":Select") contrôle l'existence d'une valeur dans la liste renvoyée par une requête select mono-colonne.

Syntaxe

$CHECK("77";Argument&":Select")

Valeur de retour

En cas d'erreur SQL, le CRE est en erreur et le Composer ajoute un message d'erreur Oracle au message de rejet.  

Remarque : il est recommandé de stocker vos requêtes dans une table interne. Les requêtes sont alors validées avant d'être stockées, et il y a moins de risque d'erreur lors de l'utilisation de la requête.

Paramètre

77

correspond au point d'entrée spécifique prédéfini pour les appels externes permettant de contrôler des données contenues dans une base de données Oracle.

Argument&":Select" est la concaténation de la valeur à contrôler et de la requête à exécuter, séparées par un deux-points (:).Puisqueles caractères deux-points (:) et guillemet (") sont utilisés comme séparateurs, vous ne devez pas les utiliser dans la requête.

Exemple

Cet exemple contrôle si le produit identifié par son code produit, contenu dans le champ CPROD, est réellement stocké dans la table t_product. Si le produit n'existe pas dans la table, le CRE est en erreur.

$CHECK ("77"; CPROD& ": SELECT code_product FROM t_product")

$CHECK("78";Argument&":Procedure")

Description

$CHECK("78";Argument&":Procedure") renvoie une valeur contenue dans une table de référence externe.

Syntaxe

$CHECK("78";Argument&":Procedure")

Les parenthèses, les guillemets et le caractère ";" sont obligatoires.

Valeur de retour

En cas d'erreur SQL, le CRE est en erreur et le Composer ajoute un message d'erreur Oracle au message de rejet.

Paramètre

78

correspond au point d'entrée spécifique prédéfini pour les appels externes permettant de contrôler des données contenues dans une base de données Oracle.

Argument&":Procedure" est la concaténation de la valeur à contrôler et de la procédure à exécuter, séparées par le caractère deux-points (:).Puisqueles caractères deux-points (:) et guillemet (") sont utilisés comme séparateurs, vous ne devez pas les utiliser dans la requête.

Exemple

Dans cet exemple, la procédure Oracle proc_ctrlprod est utilisée pour contrôler si un produit est contenu dans la table t_product.

$CHECK ("78"; CPROD& ": proc_ctrlprod")

Retour

Related Links