|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : février 2011 Messages : 38 ![]() |
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 ? |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Ingénieur développement logiciels Inscription : juin 2007 Messages : 480 ![]() |
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. |
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : février 2011 Messages : 38 ![]() |
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 |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Ingénieur développement logiciels Inscription : juin 2007 Messages : 480 ![]() |
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. |
|
|
00
|
|
|
#5 |
|
Invité régulier
![]() Inscription : février 2011 Messages : 38 ![]() |
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 ? |
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Ingénieur développement logiciels Inscription : juin 2007 Messages : 480 ![]() |
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... |
|
|
00
|
|
|
#7 | ||
|
Membre confirmé
![]() Grégoire MARTINIngénieur développement logiciels Inscription : janvier 2011 Messages : 128 ![]() |
Bonjour,
tu peux aussi créer un synonyme pointant sur ta table distante : Code :
L’intérêt d'un dblink est en effet de pouvoir accéder à des données distantes. |
||
|
|
10
|
|
|
#8 |
|
Invité régulier
![]() Inscription : février 2011 Messages : 38 ![]() |
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 |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com