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 :

Problème avec fonction renvoyant une "Nested Table"


Sujet :

PL/SQL Oracle

  1. #1
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut Problème avec fonction renvoyant une "Nested Table"
    Bonjour,

    Sous Oracle10g, Windows server 2003 R2.
    J'ai une fonction PIPELINED et son "clone" (fait juste pour tester) en version "cast multiset" renvoyant le même type.
    Tout fonctionne correctement.

    Je place ces 2 fonctions sur un autre Oracle10g, mais sur un autre serveur (lui aussi Windows server 2003), et la j'ai l'erreur:
    "cannot access rows from a non-nested table item" dès que je veux en utiliser une des deux.
    NB: tous les objets dans le schema (tables, vues, types, procedudes, fonctions, packages, etc) sont identiques entre ces 2 serveurs.

    D'ou peut bien venir ce comportement ? Que puis je bien faire pour comprendre ce qui ne va pas ?...

    Merci d'avance pour vos conseils éclairés.

    ++
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  2. #2
    Expert éminent sénior 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
    Points : 11 252
    Points
    11 252
    Par défaut
    Un petit exemple ?
    Parce que sans un exemple reproductible qui sait ? Peut être ça.

  3. #3
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Bon, j'ai une solution, mais qui ne m'explique pas pourquoi j'ai cette différence entre les 2 serveurs, et uniquement sur une fonction table d'un des packages; alors que tout les reste est a peu près sur le même ton...

    Mais sur le serveur en question, je ne suis pas chez moi, j'y rentre sans déranger en mettant mes patins et en essayant de ne pas faire de bruit; je ne vais pas faire de vagues.

    Bref, j'ai changer dans mes clauses, par exemple la ou j'avais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    WHERE champs_1 IN (SELECT * FROM TABLE(temp_pays))
    -- ou temp_pays est déclaré tel que: temp_pays prompt_pays;
    -- et ou prompt_pays et un type "table of varchar2(3)" par exemple.
    par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    WHERE champs_1 IN (SELECT * FROM TABLE(CAST(temp_pays AS prompt_pays)))
    Et la, tout va tout de suite mieux...
    Maintenant, pourquoi l'un marche d'un côté et pas de l'autre, je ne sais pas.
    ++
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  4. #4
    Expert éminent sénior 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
    Points : 11 252
    Points
    11 252
    Par défaut
    Et pour ma curiosité t'as regardé la valeur du paramètre cursor_sharing ?

  5. #5
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Non effectivement, j'avoue ne pas avoir osé toucher a ca, ayant testé l'autre solution.

    Je vais chercher ca, dés que reconnecté sur le serveur en question, et te dirais.
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec fonction renvoyant un Tableau dynamique
    Par kracter56 dans le forum Débuter
    Réponses: 3
    Dernier message: 12/06/2012, 14h38
  2. Réponses: 9
    Dernier message: 05/04/2006, 17h48
  3. [PL SQL] Problème avec 'case' dans une fonction
    Par divail dans le forum Oracle
    Réponses: 14
    Dernier message: 13/03/2006, 15h50
  4. Problème avec affichage d'une table modifiée
    Par auriolbeach dans le forum Access
    Réponses: 6
    Dernier message: 31/10/2005, 15h45

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