folder Tahribat.com Forumları
linefolder Database - Veritabanı
linefolder Veritabanlarından Veri Çekip Bir Başka Veritabanına Yazma



Veritabanlarından Veri Çekip Bir Başka Veritabanına Yazma

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    trooper
    trooper's avatar
    Kayıt Tarihi: 11/Kasım/2007
    Erkek
    MhmdAlmz bunu yazdı
    trooper bunu yazdı

    Edit: Hocam söylemiş olduğum yazılım ücretsiz ve açık kaynak

    https://www.symmetricds.org/

    Bu ürün ile cross platform replication yaparsın.

     

    Deneyeyim hocam onu da bir şunu çözemez isem

    dene bakalım :) 

    https://www.youtube.com/watch?v=mLJyj86ZUgM 

     

    eski bir video olmasına karşı 4 dk 3.dk dan itibaren 2 sql nasıl sync halde çalışıyo görebilirsin sorgu dönüşlerini görebilirsin


    ZzZzZzZ...!
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek

    Navicat ile dataları atıyorum fakat Şöyle bir sorun var MSSQL de veritabanı isimleri büyük harfli iken Myssql de tolowercase şeklinde.

    Yani MSSQL de tablo adı KullaniciBilgileri iken MYSQL de kullanicibilgileri olduğundan hatalı atıyor.. MSSQL deki tablo isimlerinin hepsini ToLowerCase yapmam gerekiyor bunun için bi yol arıyorum şuan


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    _DevLop_
    _DevLop_'s avatar
    Kayıt Tarihi: 17/Ağustos/2015
    Erkek
    MhmdAlmz bunu yazdı

    Navicat ile dataları atıyorum fakat Şöyle bir sorun var MSSQL de veritabanı isimleri büyük harfli iken Myssql de tolowercase şeklinde.

    Yani MSSQL de tablo adı KullaniciBilgileri iken MYSQL de kullanicibilgileri olduğundan hatalı atıyor.. MSSQL deki tablo isimlerinin hepsini ToLowerCase yapmam gerekiyor bunun için bi yol arıyorum şuan

    Bu kod işini görür diye düşünüyorum. İş arasında test etmeden yazdım bi kontrol edersin..

     

     

    DECLARE C_CURSOR CURSOR LOCAL FOR 

    SELECT name

    FROM sys.tables

    DECLARE @TABLO_ADI VARCHAR(1024)

    DECLARE @SQL VARCHAR(1024)

    OPEN C_CURSOR

    FETCH NEXT FROM C_CURSOR INTO @TABLO_ADI

    WHILE @@FETCH_STATUS = 0 

    BEGIN

    SET @SQL = 'EXEC sp_rename ' + @TABLO_ADI + ', ' + LOWER(@TABLO_ADI)

     

    --SELECT (@SQL)

    exec (@SQL)

    SET @SQL = NULL

    FETCH NEXT FROM C_CURSOR INTO @TABLO_ADI

    END

    CLOSE C_CURSOR

    DEALLOCATE C_CURSOR

    GO

     

     

    _DevLop_ tarafından 27/Mar/17 12:04 tarihinde düzenlenmiştir

    ‘A’ Developer is a good starter and a good finisher as well
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek

    Deneyeyim hocam 


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    _DevLop_
    _DevLop_'s avatar
    Kayıt Tarihi: 17/Ağustos/2015
    Erkek

    select yaptığım yeri değiştirmen gerekiyor. Daha doğrusu kodu execute etmen gerekiyor. Aşağıda yeni kodu paylaştım. bold olan yerleri editledim. Orjinal postuda değiştiriyorum.

    Kusura bakma dediğim gibi iş arasında yazdım dalgınlıkla unutmuşum :)

     

    DECLARE C_CURSOR CURSOR LOCAL FOR 

    SELECT name

    FROM sys.tables

    DECLARE @TABLO_ADI VARCHAR(1024)

    DECLARE @SQL VARCHAR(1024)

    OPEN C_CURSOR

    FETCH NEXT FROM C_CURSOR INTO @TABLO_ADI

    WHILE @@FETCH_STATUS = 0 

    BEGIN

    SET @SQL = 'EXEC sp_rename ' + @TABLO_ADI + ', ' + LOWER(@TABLO_ADI)

     

    --SELECT (@SQL)

    exec (@SQL)

    SET @SQL = NULL

    FETCH NEXT FROM C_CURSOR INTO @TABLO_ADI

    END

    CLOSE C_CURSOR

    DEALLOCATE C_CURSOR

    GO

     

    _DevLop_ tarafından 27/Mar/17 12:04 tarihinde düzenlenmiştir

    ‘A’ Developer is a good starter and a good finisher as well
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek
    _DevLop_ bunu yazdı

    select yaptığım yeri değiştirmen gerekiyor. Daha doğrusu kodu execute etmen gerekiyor. Aşağıda yeni kodu paylaştım. bold olan yerleri editledim. Orjinal postuda değiştiriyorum.

    Kusura bakma dediğim gibi iş arasında yazdım dalgınlıkla unutmuşum :)

     

    DECLARE C_CURSOR CURSOR LOCAL FOR 

    SELECT name

    FROM sys.tables

    DECLARE @TABLO_ADI VARCHAR(1024)

    DECLARE @SQL VARCHAR(1024)

    OPEN C_CURSOR

    FETCH NEXT FROM C_CURSOR INTO @TABLO_ADI

    WHILE @@FETCH_STATUS = 0 

    BEGIN

    SET @SQL = 'EXEC sp_rename ' + @TABLO_ADI + ', ' + LOWER(@TABLO_ADI)

     

    --SELECT (@SQL)

    exec (@SQL)

    SET @SQL = NULL

    FETCH NEXT FROM C_CURSOR INTO @TABLO_ADI

    END

    CLOSE C_CURSOR

    DEALLOCATE C_CURSOR

    GO

     

    Hocam sen muhteşem bir detaysın :)

    Edit : I'lar i olması gerekirken ı oluyor hocam VT de ı harfi nasıl olur ?

    Edit 2:

    Koda şöyle bir ekleme yaptım ama ilerde patlak verir mi ki ? 

    ET @SQL = 'EXEC sp_rename ' + @TABLO_ADI + ', ' + REPLACE(LOWER(@TABLO_ADI),'ı','i')  

     

    MhmdAlmz tarafından 27/Mar/17 13:03 tarihinde düzenlenmiştir

    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    _DevLop_
    _DevLop_'s avatar
    Kayıt Tarihi: 17/Ağustos/2015
    Erkek
    MhmdAlmz bunu yazdı
    _DevLop_ bunu yazdı

    select yaptığım yeri değiştirmen gerekiyor. Daha doğrusu kodu execute etmen gerekiyor. Aşağıda yeni kodu paylaştım. bold olan yerleri editledim. Orjinal postuda değiştiriyorum.

    Kusura bakma dediğim gibi iş arasında yazdım dalgınlıkla unutmuşum :)

     

    DECLARE C_CURSOR CURSOR LOCAL FOR 

    SELECT name

    FROM sys.tables

    DECLARE @TABLO_ADI VARCHAR(1024)

    DECLARE @SQL VARCHAR(1024)

    OPEN C_CURSOR

    FETCH NEXT FROM C_CURSOR INTO @TABLO_ADI

    WHILE @@FETCH_STATUS = 0 

    BEGIN

    SET @SQL = 'EXEC sp_rename ' + @TABLO_ADI + ', ' + LOWER(@TABLO_ADI)

     

    --SELECT (@SQL)

    exec (@SQL)

    SET @SQL = NULL

    FETCH NEXT FROM C_CURSOR INTO @TABLO_ADI

    END

    CLOSE C_CURSOR

    DEALLOCATE C_CURSOR

    GO

     

    Hocam sen muhteşem bir detaysın :)

    Edit : I'lar i olması gerekirken ı oluyor hocam VT de ı harfi nasıl olur ?

    Edit 2:

    Koda şöyle bir ekleme yaptım ama ilerde patlak verir mi ki ? 

    ET @SQL = 'EXEC sp_rename ' + @TABLO_ADI + ', ' + REPLACE(LOWER(@TABLO_ADI),'ı','i')  

     

    bir tane function yazdım her yerde lazım olur diye.. onu kullan. Sorguyu editledim..

    SET ANSI_NULLS ON

    GO

    SET QUOTED_IDENTIFIER ON

    GO

     

    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[F_GLOBAL_DILE_CEVIR]') and xtype in (N'FN', N'IF', N'TF'))

    drop function [dbo].[F_GLOBAL_DILE_CEVIR]

    GO

     

    CREATE FUNCTION [dbo].[F_GLOBAL_DILE_CEVIR] (@DEGER VARCHAR(1024))

    RETURNS VARCHAR(1024)

    AS

    BEGIN

    --DECLARE @DEGER VARCHAR(1024)

    SET @DEGER = replace(replace(replace(REPLACE(REPLACE(@DEGER, 'ı', 'i'), 'ş', 's'), 'ü', 'u'), 'ğ', 'g'), 'ç', 'c')

    RETURN @DEGER

     

    END

     

    GO

    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    DECLARE C_CURSOR CURSOR LOCAL FOR 

    SELECT name

    FROM sys.tables

    DECLARE @TABLO_ADI VARCHAR(1024)

    DECLARE @SQL VARCHAR(1024)

    OPEN C_CURSOR

    FETCH NEXT FROM C_CURSOR INTO @TABLO_ADI

    WHILE @@FETCH_STATUS = 0 

    BEGIN

    SET @TABLO_ADI = dbo.F_GLOBAL_DILE_CEVIR(@TABLO_ADI)

    SET @SQL = 'EXEC sp_rename ' + @TABLO_ADI + ', ' + LOWER(@TABLO_ADI)

    --SELECT (@SQL)

    exec (@SQL)

    SET @SQL = NULL

    FETCH NEXT FROM C_CURSOR INTO @TABLO_ADI

    END

    CLOSE C_CURSOR

    DEALLOCATE C_CURSOR

    GO

     


    ‘A’ Developer is a good starter and a good finisher as well
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek

    devlop eyvallah hocam teşekkürler :)


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek

    Sorunu şu şekilde çözmeye calıstım..

    develop hocamın verdiği kod ile ilk önce tablo adlarını küçük yaptım..

    daha sonra NAVİCAT ile DB yi datatransfer seneceğinden bir başka DB ye insert ettim .

    Geliştirmiş olduğun DB haliyle tablo alanları vs daha fazla oldugundan.. Bir sorgu ile Geliştirmiş olduğum VT'nin Column Name Data Type Data Lenght vs.. gibi  özelliklerini bir şema halinde cıkarıp.. Insert ettiğim db de bu alanlar yoksa tabloyu güncelliyorum..

    Sorun şuan pek gözükmüyor. Bu işlem süreci biraz uzadı bilgisizlikten olsa gerek..

    Ben bu şekilde çözdüm ilerde aynı sorunu yaşayacak olan hocaları çaya davet ediyorum ,:D Anlatırız hallederiz hoca dert etme :D


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
Toplam Hit: 3108 Toplam Mesaj: 20
veritabanı