oci_set_action

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

oci_set_action — Définit le nom de l'action

Description

function oci_set_action(resource $connection, string $action): bool

Définit le nom de l'action pour un traçage Oracle.

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

Le nom de l'action peut être interrogé par la suite depuis la vue d'administration de la base de données V$SESSION. Il peut être utilisé pour tracer et surveiller d'autres vues comme V$SQLAREA et DBMS_MONITOR.SERV_MOD_ACT_STAT_ENABLE.

La valeur peut être conservée au travers 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().

action

Chaîne choisie par l'utilisateur jusqu'à 32 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éfinition d'une action

<?php

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

// Enregistre l'action
oci_set_action($c, 'Friend Lookup');

// 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 du script, l'administrateur peut voir les actions
// en cours d'exécution :

sqlplus system/welcome
SQL> select action 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