Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL]update TABELA set Kolumna = replace
Forum PHP.pl > Forum > Przedszkole
netyk
Witam

Napiszę od początku o co chodzi. Zamieściłem w swoim sklepie internetowym certyfikat SSL i pojawił się problem, gdyż większość opisów w sklepie miała linki do zdjęć zapisane na sztywno jako http zamiast https i w tej chwili wyszukiwarki pokazuja komunikat o istniejacych zawarosciach bez zabezpieczen. pomyślałem żeby hurtowo zmienić to w SQL Server MS. w google znalazłem taki skrypt

  1. UPDATE TABELA SET Kolumna = REPLACE(Kolumna,'http','https');


jednak to nie działa. Na forach znalazłem ze funkcja Replace nie będzie działać w polach tekstowych i ze trzeba napisać ASP skrypt na czym zupełnie się nie znam ;/
Czy jest jakiś inny sposób, żeby nie pisać skryptów? A może jest jeszcze inny sposób (nie w sql) zeby zminić pola http na https?

Michasko
Jeśli faktycznie nie działa w ten sposób (choć to dla mnie dziwne), to może najpierw przytnij Twoje ścieżki o te 4 znaki (HTTP) z przodu, a następnie dodaj je znowu, ale już HTTPS smile.gif
Myślę, że to będzie nawet lepszy sposób, bo REPLACE podmieniłoby Ci wszystkie 'http' jakie by znalazło w ścieżce - nie tylko te na początku.
bpskiba
Cytat(netyk @ 24.01.2013, 11:36:11 ) *
Witam

Napiszę od początku o co chodzi. Zamieściłem w swoim sklepie internetowym certyfikat SSL i pojawił się problem, gdyż większość opisów w sklepie miała linki do zdjęć zapisane na sztywno jako http zamiast https i w tej chwili wyszukiwarki pokazuja komunikat o istniejacych zawarosciach bez zabezpieczen. pomyślałem żeby hurtowo zmienić to w SQL Server MS. w google znalazłem taki skrypt

  1. UPDATE TABELA SET Kolumna = REPLACE(Kolumna,'http','https');


jednak to nie działa. Na forach znalazłem ze funkcja Replace nie będzie działać w polach tekstowych i ze trzeba napisać ASP skrypt na czym zupełnie się nie znam ;/
Czy jest jakiś inny sposób, żeby nie pisać skryptów? A może jest jeszcze inny sposób (nie w sql) zeby zminić pola http na https?


To zapytanie na tysiąc procent działa na MSSQL i na MySQL. Funkcja replace jest stworzona właśnie do ciągów tekstowych!!
Jedyny powód problemu jaki podejrzewam to cudzysłów może tak
  1. UPDATE TABELA SET Kolumna = REPLACE(Kolumna,"http","https");
netyk
Pokazuje komunikat :

Msg 8116, Level 16, State 1, Line 2
Argument data type text is invalid for argument 1 of replace function.

Nie akceptuje mi cudzysłowia w Microsoft SQL Managment Studio
mmmmmmm
Jeśli możesz to zmień typ pola z TEXT na Varchar(max).
Jeśli nie możesz to:
  1. UPDATE TABELA SET Kolumna = REPLACE(Cast(Kolumna AS varchar),'http','https')
netyk
Cytat(mmmmmmm @ 28.01.2013, 12:44:43 ) *
Jeśli możesz to zmień typ pola z TEXT na Varchar(max).
Jeśli nie możesz to:
  1. UPDATE TABELA SET Kolumna = REPLACE(Cast(Kolumna AS varchar),'http','https')


1. Nie mogę zmienić na Varchar
2. Ta funkcja nie działa
  1. UPDATE TABELA SET Kolumna = REPLACE(Cast(Kolumna AS varchar),'http','https')
usuwa praktycznie caly opis (pozostawia jedynie na poczatku w kazdej pozycji tyle samo znaków.

Zapomniałem napisać ze opis jest zapisany jest w jezyku html
mmmmmmm
A spróbuj tak:
  1. UPDATE TABELA SET Kolumna = REPLACE(Cast(Kolumna AS nvarchar(max)),'http','https')

lub tak:
  1. UPDATE TABELA SET Kolumna = REPLACE(Cast(Kolumna AS nvarchar(2000)),'http','https')
netyk
Dzięki wielkie pierwsza opcja działa.

Teraz mam jeszcze inne pytanko i nie wiem czy to na to forum.

Chce zrobić przekierowanie w IIS http:// na https:// robie według instrukcji http://www.sslshopper.com/iis7-redirect-http-to-https.html

ale po zrobieniu pierwszej metody pokazuje mi błąd 500

natomiast po drugiej metodzie pokazuje mi: "Nie można wyświetlić strony z powodu wewnętrznego błędu serwera."

I nie bardzo wiem co jest nie tak ;/
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.