Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Outils > Forms
Forms Forum d'entraide sur Oracle Forms
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/12/2010, 14h30   #1
Membre du Club
 
Inscription : août 2008
Messages : 152
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 152
Points : 56
Points : 56
Par défaut Bloc non base et enregistrements d’un SQL dynamic ?

Bonjour à tous,


Je travaille avec forms 10g sous XP.

Mon application est constituée de 2 parties :

La première qui sert à manipuler une table avec du SQL dynamique : select, insert, alter et delete.

La deuxième qui va servir à visualiser ces manipulations consignées dans une table maTable. Cette table n’est pas grantée (pas de privilèges expres).

Donc, je veux alimenter un bloc de données multiligne non basé via une procédure que cette dernière utilise un SQL dynamique, exemple :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
PROCEDURE GetRecords(v_champ1 out, v_champ2 out, …)
AS
   TYPE t_champ1 IS TABLE of maTable.champ1%TYPE;
   TYPE t_champ1 IS TABLE of maTable.champ2%TYPE;
   …
   v_champ1 t_champ1;
   v_champ2 t_champ2;
   …
   v_Requete VARCHAR2(200);	
 
BEGIN
   V_Requete:=SELECT champ1, champ1,… FROM maTable’;
   EXECUTE IMMEDIATE v_Requete BULK COLLECT INTO v_champ1, v_champ2,… ;
 
EXCEPTION 
   WHEN Others THEN
		DBMS_OUTPUT.PUT_LINE(‘Exception : ‘ || SQLERRM );
END GetRecords;
Et je veux alimenter un bloc de données multilignes (tabulaire) avec les arguments de la procédure "GetRecords".

Est-ce possible ?

Comment faire ?

Ou plus simple ???


Merci beaucoup de votre aide
krilas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2010, 14h40   #2
Rédacteur

 
Avatar de SheikYerbouti
 
Inscription : mai 2003
Messages : 6 523
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 6 523
Points : 6 452
Points : 6 452
Le nombre et le type des colonnes ramenées change t-il d'une exécution à l'autre ?
__________________
Rédacteur Oracle (Oracle ACE)
Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
Je ne réponds pas aux questions techniques par MP
Blogs: Forms-PL/SQL-J2EE - Forms Java Beans
SheikYerbouti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2010, 14h49   #3
Membre du Club
 
Inscription : août 2008
Messages : 152
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 152
Points : 56
Points : 56
Merci,

En principe, ça ne change pas

j'ai vu qu'il y a une solution avec une procédure stockée mais y a t il pas un problème de privilèges ???
krilas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2010, 14h58   #4
Rédacteur

 
Avatar de SheikYerbouti
 
Inscription : mai 2003
Messages : 6 523
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 6 523
Points : 6 452
Points : 6 452
dans ce cas, pourquoi avez-vous besoin de SQL dynamique ?
__________________
Rédacteur Oracle (Oracle ACE)
Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
Je ne réponds pas aux questions techniques par MP
Blogs: Forms-PL/SQL-J2EE - Forms Java Beans
SheikYerbouti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2010, 15h08   #5
Membre du Club
 
Inscription : août 2008
Messages : 152
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 152
Points : 56
Points : 56
car la table maTable est invisible pour les utilisateurs (exprès) pas de privileges.

Tous est fait en arriere plan avec du sql dynamic !?
krilas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2010, 15h25   #6
Rédacteur

 
Avatar de SheikYerbouti
 
Inscription : mai 2003
Messages : 6 523
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 6 523
Points : 6 452
Points : 6 452
si elle n'est pas visible pour l'utilisateur, comment l'est-elle pour le package ?
__________________
Rédacteur Oracle (Oracle ACE)
Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
Je ne réponds pas aux questions techniques par MP
Blogs: Forms-PL/SQL-J2EE - Forms Java Beans
SheikYerbouti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2010, 15h42   #7
Membre du Club
 
Inscription : août 2008
Messages : 152
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 152
Points : 56
Points : 56
Le package uniquement qui est granté

quand les utilisateurs font des : insert, delete ou autre

j'utlise du SQL dynamic avec des fonction ou procedure dans un package, exemple:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
FUNCTION SetInsert(No_Seq IN, IClause IN) RETURN VARCHAR2
AS
	sql_querry VARCHAR2(1000);
	v_retour VARCHAR2(1000);
 
BEGIN
	sql_querry := 'INSERT INTO ' || IClause)';
	EXECUTE IMMEDIATE sql_querry;  
	RETURN SQL%ROWCOUNT || ' row(s) inserted.';
 
EXCEPTION 
	WHEN Others THEN
		RETURN SQLERRM ; 
END SetInsert;
Dans mon cas les utilisateurs n'ont pas besoin d'avoir des privileges sur la table maTable car j'utilise des requetes parametrées.

J'ai donné uniquement aux utilisateur un :
Code :
GRANT EXECUTE ON package_x TO ROLE_x;
Voila la raison
krilas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2010, 15h48   #8
Rédacteur

 
Avatar de SheikYerbouti
 
Inscription : mai 2003
Messages : 6 523
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 6 523
Points : 6 452
Points : 6 452
Dans ce cas, vous pouvez baser votre block sur procédures stockées:
http://sheikyerbouti.developpez.com/...toforms10g.htm
__________________
Rédacteur Oracle (Oracle ACE)
Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
Je ne réponds pas aux questions techniques par MP
Blogs: Forms-PL/SQL-J2EE - Forms Java Beans
SheikYerbouti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2010, 15h51   #9
Membre du Club
 
Inscription : août 2008
Messages : 152
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 152
Points : 56
Points : 56
j'avais un doute sur la solution.

Finalement, vous me confirmez

Merci beaucoup de votre aide
krilas est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h48.


 
 
 
 
Partenaires

Hébergement Web