RECHERCHER :
COMMUNAUTE MP
Identifiez vous ...
Devenir Membre
J'ai oublié mon MDP
DOMAINE MP
Bavardages
Langages Généraux
Langages Web
Langages DotNet
Autres langages
Dev. Jeux Video
Sécurité
Sys. Exploitation
Graphismes
Logiciels
Réseaux
Bases de données
Méthodologies
Emplois High-tech
Aide juridique
Articles juridiques
FORUM
Index des forums
Ajouter un sujet
Rechercher sujet
Contact Responsable
Devenir modérateur
CHAT MP IRC
Votre pseudo ...
Srv: irc.moteurprog.com
Chan: #MoteurProg
PARTICIPER
Plus de 3500 emplois.
Rechercher un job
Déposez votre CV
Emplois High-tech

Visiteur MP

 Java multiset

Forum : J2EE - EJB
Sous Catégorie : EJB
Type du sujet : Sujet Normale
FAQ : FAQ J2EE - EJB

SUIVI DES SUJETS PAR MAIL

SUIVI PAR MAIL INACTIF

RESOLUTION DU SUJET SUJET NON RESOLU
BLOQUAGE DU SUJET SUJET ACTIF
APPARTENANCE A LA FAQ N'APPARTIENT PAS A LA FAQ


POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

FORUM J2EE - EJB

PREMIERE PAGE

PAGE PRECEDENTE

Page précedente

Page suivante

PAGE SUIVANTE

DERNIERE PAGE
jvu
Nouveau membre
Inscrit : 21/09/2006
Messages : 2
Message
#110725
Posté le 21/09/06 à 10:47
Bonjour,

Vous vous en doutez j'ai un soucis pour récupérer en java les valeurs d'un multiset présent dans une vue.
Le plus étrange est que je récupère bien les valeurs numériques du multiset, mais dès que je veux une chaîne de caractères, cela me retourne tout le temps '???'.

J'ai essayé avec java.sql.Struct et oracle.sql.STRUCT, j'ai le même problème.

Je travaille avec Oracle 9.2.0.7.0 et le jdbc14 d'Oracle.

Merci pour votre aide.

Suivent les infos pour m'aider.

Jérôme

create table DBA_CPLAN.CPLAN_TD_EEI (
ID NUMBER not null,
LIBELLE VARCHAR2(200 char) not null,
ID_SIR NUMBER
);


create table DBA_CPLAN.CPLAN_TD_SIR (
ID NUMBER not null,
LIBELLE VARCHAR2(200 char) not null
);

CREATE OR REPLACE TYPE CPLAN_TYD_SIR AS OBJECT
(
id NUMBER,
libelle VARCHAR2(200 char)
);

CREATE OR REPLACE TYPE CPLAN_TPD_SIR AS TABLE OF CPLAN_TYD_SIR;

CREATE OR REPLACE FORCE VIEW DBA_CPLAN.CPLAN_VP_EEI AS
SELECT eei.ID id
, eei.LIBELLE libelle
, cast ( multiset ( select sir.id id
, cplan_md_sir.calculer_identifiant(sir.id) identifiant
, sir.libelle libelle
from cplan_td_sir sir
where sir.id = eei.id_sir
) as cplan_tpd_sir
) as liste_sir
FROM CPLAN_TD_EEI eei;

=========================

import java.math.BigDecimal;
import java.sql.Array;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Struct;

/**
*
*/

/**
* @author vuibert
*
*/
public class test
{

/**
* @param args
*/
public static void main(String[] args)
{
Connection conn = null;

try
{
DriverManager.registerDriver(new oracle.jdbc.OracleDriver());

conn = DriverManager.getConnection("jdbc:oracle:thin:@srv-acs-01:1421:cplan", "dba_cplan", "cplan");

if (conn == null)
return;

Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from cplan_vp_eei where id=4");

if (rs != null)
{
while (rs.next())
{
System.out.println("id = " + rs.getInt("id"));
System.out.println("libelle = " + rs.getString("libelle"));

// Recuperation du tableau
Array liste_sir = rs.getArray("liste_sir");

if (liste_sir == null)
break;

// Recuperation des lignes du tableau
Object[] objects = (Object[]) liste_sir.getArray();

System.out.println("liste_sir length = " + objects.length);

if (objects.length <= 0)
break;


Object[] attributes = null;

// Pour chaque ligne du tableau
for (int i=0; i<objects.length; i++)
{
// Recuperation des cellules
attributes = (Object[]) ((Struct)objects[i]).getAttributes();

System.out.println("sir id = " + ((BigDecimal) attributes[0]).intValue());
System.out.println("sir libelle = " + attributes[1]);
}

}
}

}
catch (SQLException e)
{
System.out.println("Caught: " + e);
System.exit(1);
}
}
}

====================
Sortie dans la console :
id = 4
libelle = libelle eei 4
liste_sir length = 1
sir id = 30
sir libelle = ???

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Publicité
Inscrit : X
Messages : X
Message
#Aucun

HAUT DE PAGE

  

masseuro
Membre MP
Avatar de masseuro
Inscrit : 17/11/2004
Messages : 195
Message
#110732
Posté le 21/09/06 à 12:03
BUUUUUP!!!

Ceci est un message automatique. Mettez les codes sources entre [code] svp. Merci!

P.S: Ceci était un message à caréctère informatif.
__________________________
rien ne sert de coder pour coder il suffit de coder à point. La fontaine (ah non c'est pas ça qu'il a dit?)

ERREUR BBCODE SUR CE MESSAGE :
- Une balise code n'est pas fermée !

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE ALLER VOIR SON SITE


    PAGE : [1]



.: Site Web développé par Julien Pichot et l'équipe MPWG avec www.evolvia-web.com :.