oci_set_client_info

(PHP 5 >= 5.3.2, PHP 7, PHP 8, PECL OCI8 >= 1.4.0)

oci_set_client_info — Définit l'information concernant le client

Description

function oci_set_client_info(resource $connection, string $client_info): bool

Définit l'information concernant le client pour un traçage Oracle.

L'information du client est enregistrée avec la base de données lors du prochain aller-retour 'round-trip' entre PHP et la base de données survient ; typiquement, lorsqu'une requête SQL est exécutée.

L'information du client peut par la suite être interrogée depuis la vue d'administration de la base de données V$SESSION.

La valeur sera conservée via le mécanisme des connexions persistantes.

Liste de paramètres

connection

Un identifiant de connexion Oracle, retourné par la fonction oci_connect(), oci_pconnect() ou la fonction oci_new_connect().

client_info

Chaîne utilisateur jusqu'à 64 octets de long.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Exemple #1 Définit l'information sur le client

<?php

$c = oci_connect('hr', 'welcome', 'localhost/XE');

// Enregistre l'information sur le client
oci_set_client_info($c, 'My Application Version 2');

// Code générant un aller-retour (round-trip), par exemple, une requête :
$s = oci_parse($c, 'select * from dual');
oci_execute($s);
oci_fetch_all($s, $res);

sleep(30);

?>
// Pendant l'exécution de ce script, l'administrateur peut voir les informations
// du client :

sqlplus system/welcome
SQL> select client_info from v$session;

Notes

Note: Requis par la version Oracle

Cette fonction est disponible si PHP est lié à partir de la version 10g de la bibliothèque de la base de données Oracle.

Astuce

Performance

Avec les anciennes versions d'OCI8 ou les anciennes bases de données Oracle, l'information quant au client peut être définie en utilisant le paquet Oracle DBMS_APPLICATION_INFO. Ceci est moins efficace que d'utiliser la fonction oci_set_client_info().

Attention

Allers-retours

Quelques fonctions OCI8 nécessitent des allers-retours avec la base de données. Ces allers-retours peuvent être évités lors de l'utilisation de requêtes dont le résultat est mis en cache.

Voir aussi