SQL Server到MySQL函数使用撇号,引号中的引号和逗号

时间:2013-10-03 16:29:06

标签: mysql sql-server sql-server-2008 tsql

我有问题,我无法解决。我正在做的选择返回8500+值,其中许多包含撇号,引号,逗号(“)(')(,)。 我正在使用sql来连接mysql。

所以它不是我需要处理的一个价值。我知道如何处理一个使用'吃乔'的价值 - 这是好食物!'或'吃乔' - 这是美食!';
有人可以帮我吗

DECLARE @dogno varchar(5)
DECLARE @ime VARCHAR(200)
DECLARE @adresa VARCHAR(200)

DECLARE nam CURSOR FOR
    select Klienti.naziv as ime, Ulici.naziv+' '+Klienti.ulica_br as adresa , tKlienti_Dogovori.dogovor_br as dogno 
    from Klienti_Dogovori
    INNER JOIN Klienti on Klienti.id=Klienti_Dogovori.klient_id
    INNER JOIN Ulici on Ulici.id=Klienti.ulica_id
    where Klienti_Dogovori.usluga_id=2 and Klienti_Dogovori.aktiven=1
open nam
    fetch next from nam into @ime, @adresa, @dogno
    while @@FETCH_STATUS = 0 BEGIN
    DECLARE @sync varchar(max)
            set @sync = '''update users set name=''' +cast(@ime as VARCHAR(200))+ ''', address=''' +cast (@adresa as varchar(200))+ ''' where dognumber=''' + cast (@dogno as varchar(5))
        Execute(@sync) at mysqlserver
    fetch next from nam into @ime, @adresa, @dogno
    END
close nam
deallocate nam

此函数正常工作,直到出现具有撇号,引号或逗号(“)(')(,)的值。

2 个答案:

答案 0 :(得分:0)

因为我发现怎么做才能回答我的问题。 它全部在选择

select replace(replace(replace(replace(replace(replace(REPLACE(Klienti.naziv,'''',''),'"',''),',',''),'“',''),'„',''),'’',''),'‘','') as ime, replace(replace(replace(replace(replace(replace(replace(Ulici.naziv+' '+Klienti.ulica_br,'''',''),'"',''),',',''),'“',''),'„',''),'’',''),'‘','') as adresa,  Klienti_Dogovori.dogovor_br as dogno
    from Klienti_Dogovori
    INNER JOIN Klienti on Klienti.id=Klienti_Dogovori.klient_id
    INNER JOIN Ulici on Ulici.id=Klienti.ulica_id
    where Klienti_Dogovori.usluga_id=2 and Klienti_Dogovori.aktiven=1

答案 1 :(得分:0)

唉。对于你的链接服务器执行存储过程或UPDATE语句要比做这个可恶的事情好得多!

您还应该考虑进行基于集合的更新,而不是光标,这是不必要且缓慢的。