Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour Oracle
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 21/02/2011, 09h59   #1
Invité régulier
 
Inscription : février 2011
Messages : 38
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 38
Points : 9
Points : 9
Par défaut SELECT * FROM TABLE@SCHEMA

Bonjour,

je suis néophyte sur Oracle. J'ai un serveur de BDD sur lequel tourne cette base de données avec ce schéma (SRV-1).
Sur une autre machine disposant d'un client oracle j'appelle cette fonction
sqlplus %utilisateur%/%mdp%@%base% @fichier.sql >log_fichier.txt

Dans le fichier j'ai l'instruction suivante :
"SELECT * FROM TABLE@SCHEMA".
Question1 : comment arrive t'il à déterminer ou se situe les données de SCHEMA, est ce par rapport à la connexion TNS la configuration de Oracle Net Manager\résolution de nom ? (en effet l'instruction du début n'appelle pas cette base et à aucun moment je n'y fait référence). Ou est ce que cela sius entend qu'un schéma est unique pour un réseau ?

Autre question à la suite j'ai sqlplus %utilisateur%/%mdp%@%base% @fichier2.sql >>log_fichier.txt
Est ce que les >> signifie à la suite dans le fichier ?
Jenesépa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 11h07   #2
Membre Expert
 
Femme
Ingénieur développement logiciels
Inscription : juin 2007
Messages : 480
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France, Ain (Rhône Alpes)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : juin 2007
Messages : 480
Points : 1 024
Points : 1 024
Bonjour,
Dans l'instruction SELECT * FROM TABLE@SCHEMA, SCHEMA est le nom d'un DB-Link qui doit être défini dans la DB où se fait le SELECT.
Les >> dans l'instruction suivante signifient bien que le résultat doit s'ajouter à la fin de log_fichier.txt.
tedo01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 11h57   #3
Invité régulier
 
Inscription : février 2011
Messages : 38
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 38
Points : 9
Points : 9
Bonjour,

ou trouve t'on le DBLINK ?
Sur cette machine j'ai trouvé un pilote ODBC avec pour nom SCHEMA et pointant bien vers le serveur ou de trouve la base de données. est ce ça ?
ou dois je chercher ailleurs qq part dans le client ou dans un fichier txt,

Merci pour vos réponses
Jenesépa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 13h41   #4
Membre Expert
 
Femme
Ingénieur développement logiciels
Inscription : juin 2007
Messages : 480
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France, Ain (Rhône Alpes)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : juin 2007
Messages : 480
Points : 1 024
Points : 1 024
Bonjour,
Je ne connais pas ce mode de fonctionnement...

Pour moi, la base %base% est celle dans laquelle s'exécute l'instruction, et on y accède par le client Oracle local.
Quant à la syntaxe @SCHEMA, elle permet normalement d'accéder à un autre serveur via un DB-Link défini à l'intérieur de la base %base% par l'ordre CREATE DATABASE LINK "SCHEMA"...
On peut lister les DB-Links d'une base par l'instruction select * from dba_db_links.
tedo01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 14h22   #5
Invité régulier
 
Inscription : février 2011
Messages : 38
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 38
Points : 9
Points : 9
Merci effectivement j'ai regardé dans database manager et ai constaté la présence des DB-LINK dans Distribué\Liens de base de données et en lançant effectivement la requete SQL mentionnée.
Par contre ce qui est assez etonnant c est la syntaxe "SCHEMA.US.ORACLE.COM" est ce une syntaxe auto.
L'intéret de rajouter des DB-LINK est il de faire des jointures inter bases ?
Jenesépa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 14h59   #6
Membre Expert
 
Femme
Ingénieur développement logiciels
Inscription : juin 2007
Messages : 480
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France, Ain (Rhône Alpes)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : juin 2007
Messages : 480
Points : 1 024
Points : 1 024
Re,
Où as-tu trouvé la syntaxe "SCHEMA.US.ORACLE.COM" ? Dans la définition du DB-Link, dans dans la configuration du client Oracle ?
Le DB-Link sert effectivement à faire communiquer des bases entre elles.
Attention cependant aux performances, surtout quand on appelle des vues ou des fonctions dans la base distante...
tedo01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 14h59   #7
Membre confirmé
 
Homme Grégoire MARTIN
Ingénieur développement logiciels
Inscription : janvier 2011
Messages : 128
Détails du profil
Informations personnelles :
Nom : Homme Grégoire MARTIN
Âge : 32
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Finance

Informations forums :
Inscription : janvier 2011
Messages : 128
Points : 225
Points : 225
Bonjour,

tu peux aussi créer un synonyme pointant sur ta table distante :

Code :
1
2
 
CREATE OR REPLACE SYNONYM SCHEMA.TABLE FOR SCHEMA.TABLE@DB_LINK;
Ensuite utilise le comme une table ordinaire de ton schéma.

L’intérêt d'un dblink est en effet de pouvoir accéder à des données distantes.
ORA-007 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 21/02/2011, 15h19   #8
Invité régulier
 
Inscription : février 2011
Messages : 38
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 38
Points : 9
Points : 9
J'ai trouvé la syntaxe "SCHEMA.US.ORACLE.COM" sur le serveur de BDD dans Entreprise Manager en me loggant en System sur la base de données => Distribué\Liens de base de données\
sinon effectivement qd je fais la requête SQL je ne vois que SCHEMA

Pa contre à la réponse de ORA-007, si j'ai bien compris la notion de synonyme cela permet de créer un alias évitant d'utiliser la syntaxe TABLE@DB-LINK
Jenesépa est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h46.


 
 
 
 
Partenaires

Hébergement Web