| auteur : Helyos |
Vous allez être sûrement amené, dans le cours de votre développement sur Portal,
à trouver des informations sur l'utilisateur couramment connecté.
Les informations les plus utilisées sont surtout l'id de l'utilisateur connecté, ainsi que son login,
voire la langue qu'il utilise actuellement avec son browser sur le Portal.
Pour cela vous disposez d'un package Portal qui vous permet d'obtenir ces informations très facilement :
PORTAL.WWCTX_API
Ce package dispose d'un grand nombre de fonctions et procédures qui vous permettront de trouver des informations sur l'utilisateur connecté.
Par exemple vous utiliserez :
declare
p_user_id number := portal.wwctx_api.get_user_id;
begin
htp.prn(' Votre id est ' | | p_user_id);
end ;
/
declare
p_user_name varchar2 (30 ):= portal.wwctx_api.get_user;
begin
htp.prn(' Votre login est ' | | p_user_name);
end ;
/
declare
p_lang varchar2 (10 ):= portal.wwctx_api.get_nls_language;
begin
htp.prn(' La langue actuellement utilisée est ' | | p_user_id);
end ;
/
|
|
| auteur : Helyos |
Vous allez être sûrement amené, dans le cours de votre développement sur Portal, à trouver des informations sur un utilisateur lambda.
En règle générale vous allez surtout chercher à connaître son id à partir de son login ou inversement.
Pour cela vous disposez d'un package Portal qui vous permet d'obtenir ces informations très facilement :
PORTAL.WWSEC_API
Ce package dispose d'un grand nombre de fonctions et procédures qui vous permettront de trouver des informations sur les utilisateurs.
Par exemple vous utiliserez :
declare
p_user_name varchar2 (30 ):= ' HELYOS ' ;
p_user_id number := portal.wwsec_api.id(upper (p_user_name));
begin
htp.prn(' L ' ' id de l ' ' utilisateur ' | | p_user_name| | ' est ' | | p_user_id);
end ;
/
declare
p_user_id number := ' 2003 ' ;
p_user_name varchar2 (30 ):= portal.wwsec_api.user_name(p_user_id);
begin
htp.prn(' Le login correspondant à l ' ' id ' | | p_user_id| | ' est ' | | p_user_name );
end ;
/
|
|
| auteur : Helyos |
Le package htp est soumis à certaines limitations induites par le mod_plsql.
En effet les procédures d'affichage (htp.p, htp.prn, htp.pint) ne supportent pas le fait d'afficher des chaines de caractères de taille supérieure à 32767 caractères).
Le résultat de cette limitation est l'affichage du CLOB en question sous forme de caractères incompréhensibles.
Voici une procédure vous permettant de contourner la limitation :
CREATE OR REPLACE PROCEDURE write_clob(p_clob CLOB) IS
v_buffer VARCHAR2 (32000 );
v_offset PLS_INTEGER DEFAULT 1 ;
v_taille PLS_INTEGER ;
v_longueur PLS_INTEGER ;
v_chunk PLS_INTEGER ;
v_clob CLOB := p_clob;
BEGIN
v_chunk := dbms_lob.getchunksize(v_clob);
v_longueur := dbms_lob.getlength(v_clob);
WHILE v_offset < v_longueur LOOP
IF v_longueur - (v_offset - 1 ) > v_chunk THEN
v_taille := v_chunk;
ELSE
v_taille := v_longueur - (v_offset - 1 );
END IF ;
v_buffer := NULL ;
dbms_lob.READ(v_clob, v_taille, v_offset, v_buffer);
htp.prn(v_buffer);
v_offset := v_offset + v_taille;
END LOOP ;
EXCEPTION
WHEN OTHERS THEN
htp.print(SQLERRM );
END ;
|
|
Consultez les autres F.A.Q's
|
|
Les sources présentées sur cette page sont libres de droits
et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur.
Copyright © 2007 Developpez Developpez LLC.
Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne
peut être faite de ce site ni de l'ensemble de son contenu : textes, documents
et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez
selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.