Précédent   Forum des professionnels en informatique > Bases de données > Sybase > Adaptive Server Enterprise
Adaptive Server Enterprise Forum d'entraide concernant Sybase Adaptive Server Enterprise, le dataserver phare de Sybase
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 20/09/2007, 10h44   #1
Invité de passage
 
Inscription : septembre 2007
Messages : 4
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 4
Points : 0
Points : 0
Par défaut [ASE]problème migration oracle sybase ASE

Bonjour,

J'effectue actuellement une migration oracle -> Sybase,

J'ai actuellement un problème sur la requète oracle actuelle ci dessous que je dois convertir pour Sybase ( Adaptive Server Enterprise):

Les trois tables sur lesquelles s'effectuent cette requete sont les suivantes

TABLE EMPLACEMENTDATA (
EMPID numeric(10,0) IDENTITY,
BOITE_BOITEID numeric(10,0) NULL,
STATE numeric(18,0) NOT NULL,
X numeric(18,0) NOT NULL,
Y numeric(18,0) NOT NULL,
CONTENTS numeric(18,0) NOT NULL,
RESERVATION varchar(255) NULL,
RESSOURCESTOCKEE_RESID numeric(10,0) NULL

et

TABLE RESSOURCE (
IDRESSOURCE numeric(10,0) IDENTITY,
IDPTR numeric(10,0) NULL,
DATECREATIONRESSOURCE datetime NULL,
HEURECREATIONRESSOURCE datetime NULL,
IDTYPERESSOURCE numeric(6,0) NULL,
IDTYPECONDITIONNEMENT numeric(6,0) NULL,
IDPATIENT numeric(6,0) NULL,
IDACTION_MERE numeric(6,0) NULL,
CODEBARRERESSOURCE varchar(13) NULL,
QUANTITERESSOURCE numeric(6,0) NULL,
IDUNITEQUANTITERESSOURCE numeric(6,0) NULL,
QUALITERESSOURCE varchar(25) NULL,
COMMENTAIRERESSOURCE varchar(255) NULL,
CONFORMITERESSOURCE numeric(18,0) NOT NULL,
IDEMPLACEMENTDATA numeric(10,0) NULL,
NUMEROEXT1RESSOURCE varchar(25) NULL,
NUMEROEXT2RESSOURCE varchar(25) NULL,
NUMEROEXT3RESSOURCE varchar(25) NULL,
ETATRESSOURCE varchar(20) NULL,
IDDEVENIR numeric(6,0) NULL,
TUMORALE char(1) NULL
)


TABLE ACTIONELEMENTAIRE (
IDACTION numeric(6,0) IDENTITY,
IDRESSOURCE numeric(10,0) NOT NULL,
IDTYPEACTION numeric(6,0) NOT NULL,
IDCOLLABORATEUR numeric(6,0) NULL,
DATEACTION datetime NOT NULL,
CODEBARREACTION varchar(13) NULL,
NBELEMENTS numeric(18,0) NULL,
QUANTITEUTILISEE numeric(18,0) NULL
)



select
lpad('L......................................................',4*(level-1)) || r.IDRESSOURCE as idRes,
r.IDRESSOURCE as idRessource,
p.NOMPATIENT||' '||p.PRENOMPATIENT as nomInd,
level
from
RESSOURCE r LEFT OUTER JOIN PATIENT p ON p.IDPATIENT = r.IDPATIENT,
RESSOURCE r2 LEFT OUTER JOIN EMPLACEMENTDATA ed ON ed.RESSOURCESTOCKEE_RESID = r2.IDRESSOURCE
where
r.IDRESSOURCE = r2.IDRESSOURCE
and r.idpatient = {IDPATIENT}

start with r.IDACTION_MERE is null
connect by (
select ae.IDRESSOURCE
from ACTIONELEMENTAIRE ae
where ae.IDACTION= r.IDACTION_MERE)
= prior r.IDRESSOURCE order siblings by r.IDRESSOURCE desc


Quelqu'un habitué à ce genre de requête peut il m'aider, je suis complétement bloqué.

Merci d'avance
Bret38 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/09/2007, 12h01   #2
Nouveau Membre du Club
 
Patrick LAXTON
Développeur informatique
Inscription : mai 2006
Messages : 35
Détails du profil
Informations personnelles :
Nom : Patrick LAXTON
Âge : 27
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mai 2006
Messages : 35
Points : 25
Points : 25
Envoyer un message via MSN à tosprou Envoyer un message via Skype™ à tosprou
Je ne pense pas pouvoir t'aider (au vu de mes compétences ^^), mais si tu as un message d'erreur, je crois qu'il serait utile de nous en faire part, celà risque de nous aider.


P.S. : je dis que je ne peux pas t'aider parceque je ne connais que Sybase, MS Sql Server et MySql, et qu'en ce moment je fais une migration Sybase ASA => ASE (quoique je suis en stand-by là dessus, ouf!)

P.S. 2 : Bonne chance! Sincèrement.
tosprou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2007, 11h39   #3
Nouveau Membre du Club
 
Inscription : décembre 2002
Messages : 68
Détails du profil
Informations forums :
Inscription : décembre 2002
Messages : 68
Points : 26
Points : 26
bonjour,
je ne connais pas oracle donc je ne vais pas pouvoir t'aider entièrement mais déjà te donner quelques trucs sur syb.

la concaténation sur sybase se fait avec des +.
les jointures sont exprimés dnas la clause where avec des =
une jointure à droite =*
une jointure à gauche *=

voici un début de traduction
par contre la notation {} sous oracle, je ne sias pas ce que ça veut dire
de même pour start with.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
SELECT
     lpad('L......................................................',4*(level-1)) +
       r.IDRESSOURCE AS idRes,
     r.IDRESSOURCE AS idRessource,
     p.NOMPATIENT+' '+p.PRENOMPATIENT AS nomInd,
     level
FROM
     RESSOURCE r, 
     PATIENT p, 
     RESSOURCE r2, 
     EMPLACEMENTDATA ed 
WHERE
    p.IDPATIENT*= r.IDPATIENT
    AND ed.RESSOURCESTOCKEE_RESID *= r2.IDRESSOURCE
    AND r.IDRESSOURCE = r2.IDRESSOURCE
    AND r.idpatient = ?????
 
?????
blaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2007, 20h42   #4
Membre Expert
 
Inscription : juin 2007
Messages : 1 056
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 1 056
Points : 1 078
Points : 1 078
bonjour,

vers quelle version d'ASE migrez-vous ? Plus la version est récente et plus il y a de chances de trouver des fonctions & syntaxes qui facilitent la vie.
__________________
Emmanuel T.
kagemaru est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2007, 17h46   #5
Rédacteur/Modérateur
 
Avatar de fadace
 
Homme Fabien Celaia
Administrateur de base de données
Inscription : octobre 2002
Messages : 3 779
Détails du profil
Informations personnelles :
Nom : Homme Fabien Celaia
Âge : 41
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Service public

Informations forums :
Inscription : octobre 2002
Messages : 3 779
Points : 8 124
Points : 8 124
Envoyer un message via ICQ à fadace Envoyer un message via Skype™ à fadace
Oui, cela dépend effectivement avant tout des versions de ASE (ex. pas de jointures ANSI avant la 12 !)

Si cela peut vous aider : Le LPAD() Oracle par exemple, c'est un Replicate() sous ASE : http://fadace.developpez.com/sgbdcmp/fonctions
__________________
Sr DBA Oracle / Sybase / MS-SQL / DB2 / Informix / Postgresql
Administrateur SAP
Mes articles

Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !
fadace 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 15h08.


 
 
 
 
Partenaires

Hébergement Web