IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PL/SQL Oracle Discussion :

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


Sujet :

PL/SQL Oracle

  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    422
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2004
    Messages : 422
    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

  2. #2
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    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 : 5 611
    Par défaut
    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.

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    422
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2004
    Messages : 422
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE OR REPLACE TYPE t_dotnetarray_assoc IS TABLE OF VARCHAR2(20) INDEX BY pls_integer
    bien à vous

  4. #4
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    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 : 5 611
    Par défaut
    Citation Envoyé par mnitu Voir le message
    Vous avez un problème d'optimisation des requêtes mais vous vous prenez mal.

Discussions similaires

  1. Réponses: 3
    Dernier message: 07/09/2012, 15h19
  2. Réponses: 4
    Dernier message: 09/10/2009, 23h31
  3. Réponses: 5
    Dernier message: 11/12/2007, 12h34
  4. Réponses: 11
    Dernier message: 06/11/2006, 22h51
  5. Est-il possible de contrôler la saisie dans champ...
    Par hop&hop dans le forum Administration
    Réponses: 6
    Dernier message: 31/10/2005, 16h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo