Avatar billede mr_green Nybegynder
19. april 2001 - 12:55 Der er 11 kommentarer og
1 løsning

Flere databaser i PL/SQL Function

Er det muligt at hente oplysninger fra flere forskellige databaser i en PL/SQL function og isåfald hvordan gøres dette ??
Avatar billede Slettet bruger
19. april 2001 - 13:06 #1
Du skal lave et link til den anden database
vha.

CREATE DATABASE LINK servicenavn
CONNECT TO username IDENTIFIED BY password
USING \'connect string\'.

Service og remote database skal have samme navn, hvis init.ora parameter GLOBAL_NAMES=TRUE.
Avatar billede degn Nybegynder
19. april 2001 - 13:10 #2
Mener du i samme Select statement, eller skal du hente data i andre databaser og så bruge det hele samlet bagefter.???

Du kan vel connecte til en anden database
og så hente det du skal bruge....
connect userid/passwrd@databasenavn
Avatar billede mr_green Nybegynder
19. april 2001 - 13:12 #3
Jeg har prøvet connect userid/passwrd@databasenavn

Men jeg prøver lige Joern h\'s for at se om det hjælper
Avatar billede mr_green Nybegynder
19. april 2001 - 13:21 #4
Til Joern H

Den statement du foreslår skal den sættes ind i functionen eller skal den oprettes på databasen, hvad er det lige Using \'connect string\' den gør, er det et dummy navn der kalder linket??

Når jeg bruger connect userid/passwrd@databasenavn får jeg en PL/SQL fejl?? Jeg mener ikke at det er muligt at bruge den midt i en function.
Avatar billede Slettet bruger
19. april 2001 - 13:26 #5
Du laver et link til en anden database.

Derefter kan du fra din pl/sql referere til

select * from dual@servicenavn;

Avatar billede mr_green Nybegynder
19. april 2001 - 13:30 #6
Jeg er med på at man skal lave et link til en anden database, men hvor skal det link oprettes henne?
Avatar billede Slettet bruger
19. april 2001 - 13:32 #7
Du tager en SQL*Plus-session og skriver lige ud ad landevejen.

Har du ikke adgang til SQL*Plus kan det også gøres fra din Enterpris Manager.
Avatar billede mr_green Nybegynder
19. april 2001 - 13:54 #8
Vil det sige at følgende er muligt:

CREATE FUNCTION f_navn
BEGIN
(connected to Database1)
Select field1
from table1
.....

select *from dual@servicename

(Connected to database2)
select....fra den anden DB.

END;
Altså med dit link kan jeg nu skifte connection midt i min function.
END
Avatar billede Slettet bruger
19. april 2001 - 13:56 #9
Du kan ikke skifte connection, men du kan bruge data fra en anden database.

Din database laver en forbindelse til den anden database.

Hvis du laver ændringer på den anden database sker der en 2-phase-commit.
Avatar billede mr_green Nybegynder
19. april 2001 - 13:58 #10
OK og på den måde vil jeg så kunne hive information ud fra 2 Databaser, sammenligne dem og smide dem ud i mit program??
Avatar billede Slettet bruger
19. april 2001 - 14:01 #11
Ja
Avatar billede mr_green Nybegynder
19. april 2001 - 14:05 #12
Tak for hjælpen Joern H
pointene er hermed overført
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester