Précédent   Forum des professionnels en informatique > Bases de données > Oracle > PL/SQL
PL/SQL Forum d'entraide sur le PL/SQL
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 26/05/2011, 09h03   #1
Membre habitué
 
Inscription : avril 2004
Messages : 363
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 363
Points : 121
Points : 121
Par défaut Est-il possible d’utiliser des nested table dans sql avec la CLAUSE TABLE() et CAST() par champ?

Est-il possible d’utiliser des nested table dans sql avec la CLAUSE TABLE() et CAST() ?

Bonjour,

Je souhaite utiliser des « nested table »(ntab) en SQL. Je sais qu’il n’est pas possible de le faire directement.
Il existe 2 solutions. Soit créer des types objet et caster la structures des ntab sur les objets dans la clause from, soit utiliser des pipe row.

Je ne souhaite pas polluer la db en créant des types juste pour caster mes requêtes et je n’ai pas envie d’alourdir un package en ajoutant une trentaine de pipelined fonction.

Cependant Est-il possible de faire dans la clause TABLE des cast colonne par colonne ?

Certains se demandent pourquoi je fais cela ?

J’ai un package avec un grand nombre de fonctions et procédure avec des paramètres sys_refcursor. Ces func/proc sont utilisées en masse par du dotnet elles ont pour but de faire tous les requêtes db. Le sys refcursor est l’interface d’échange pl/sql et dotnet.

Certaines requêtes prennent du temps. Il est possible de booster les résultats en faisant une première passe par une requête de type « bulk collect ». Les résultats se trouvent dans une nested table. Je souhaite envoyer ce résultat à un sysrefcursor : open sys_refcurosr for select * cast( de ma nested table )qui est le résultat de la qry pour l’application dotnet. Pl/Sql réagit mal,
ORA-22905 - cannot access rows from a non-nested table item

Je reviens sur ma question : est-il possible de faire cast de chaque champ de ma nested_table pour que celle si soit comprise par le moteur sql sans créer un type ?


Bien à vous


pat
patmaba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 10h47   #2
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 311
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 3 311
Points : 5 808
Points : 5 808
Citation:
Envoyé par patmaba Voir le message
...Je reviens sur ma question : est-il possible de faire cast de chaque champ de ma nested_table pour que celle si soit comprise par le moteur sql sans créer un type ?
Non.

Citation:
Envoyé par patmaba Voir le message
...
Certaines requêtes prennent du temps. Il est possible de booster les résultats en faisant une première passe par une requête de type « bulk collect ». ...
Vous avez un problème d'optimisation des requêtes mais vous vous prenez mal.
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 10h45   #3
Membre habitué
 
Inscription : avril 2004
Messages : 363
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 363
Points : 121
Points : 121
Je m'en doutais.

est-il possible d'utiliser en sql et uniquement avec un TABLE CAST un type définit comme celui-ci :


Code :
CREATE OR REPLACE TYPE t_dotnetarray_assoc IS TABLE OF VARCHAR2(20) INDEX BY pls_integer
bien à vous
patmaba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 11h47   #4
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 311
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 3 311
Points : 5 808
Points : 5 808
Citation:
Envoyé par mnitu Voir le message
Vous avez un problème d'optimisation des requêtes mais vous vous prenez mal.
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h37.


 
 
 
 
Partenaires

Hébergement Web