Firebird'de iki farklı veritabanını birleştirmek için
EXECUTE STATEMENT veya
EXTERNAL DATA SOURCE yöntemlerini kullanabilirsiniz. Ancak, Firebird 2.5.8'de bu özelliklerin kısıtlı olduğunu unutmayın. İki veritabanından veri çekmek ve birleştirmek için aşağıdaki gibi bir yöntem izleyebilirsiniz.
Örnek: EXECUTE STATEMENT ile Birleştirme
Farz edelim ki iki veritabanınız var:
- DB1:
CUSTOMERS
- tablosu
- DB2:
ORDERS
- tablosu
Aşağıdaki adımları izleyerek birleştirme yapabilirsiniz:
1. İlk olarak, bağlantı dizinlerini belirleyin
sql
Kod:
-- DB1 bağlantı dizesi: 'C:\Databases\DB1.FDB'
-- DB2 bağlantı dizesi: 'C:\Databases\DB2.FDB'
2. SQL Örneği sql
Kod:
-- DB1 üzerinde çalışıyorsunuz
SELECT
C.CUSTOMER_ID,
C.CUSTOMER_NAME,
O.ORDER_ID,
O.ORDER_DATE
FROM
CUSTOMERS C
LEFT JOIN
(
SELECT
O.ORDER_ID,
O.CUSTOMER_ID,
O.ORDER_DATE
FROM
EXTERNAL DATA SOURCE 'C:\Databases\DB2.FDB'
AS O
) O
ON
C.CUSTOMER_ID = O.CUSTOMER_ID;
Bu yöntem genellikle
EXTERNAL DATA SOURCE özelliğini kullanır.
3. EXECUTE STATEMENT Örneği
EXECUTE STATEMENT ile iki veritabanına bağlanarak veriyi birleştirebilirsiniz. Bunun için:
sql
Kod:
-- DB1 üzerinde çalışıyorsunuz
SELECT
C.CUSTOMER_ID,
C.CUSTOMER_NAME,
O.ORDER_ID,
O.ORDER_DATE
FROM
CUSTOMERS C
LEFT JOIN
(
SELECT
ORDER_ID,
CUSTOMER_ID,
ORDER_DATE
FROM
EXTERNAL DATA SOURCE 'C:\Databases\DB2.FDB'
) O
ON
C.CUSTOMER_ID=ON
sql
Kod:
-- DB1 üzerinde çalışıyorsunuz
SELECT
C.CUSTOMER_ID,
C.CUSTOMER_NAME,
O.ORDER_ID,
O.ORDER_DATE
FROM
CUSTOMERS C
LEFT JOIN
(
EXECUTE STATEMENT 'SELECT ORDER_ID, CUSTOMER_ID, ORDER_DATE FROM ORDERS'
ON EXTERNAL 'C:\Databases\DB2.FDB'
) O
ON
C.CUSTOMER_ID = O.CUSTOMER_ID;
Bu örnek, EXECUTE STATEMENT kullanarak başka bir veritabanından veri çekme yöntemini gösterir.
Firebird 2.58'de
EXTERNAL TABLE kullanımı bazı durumlarda sınırlıdır.
GPT emmiden alıntıdır.