Michał P.

Michał P. Kierownik, AEGON
Towarzystwo
Ubezpieczeń na Życie
S.A.

Temat: Zapytanie w osql - czy można dodać warunek?

Witam,
Mam bazę SqlServer, przy łączeniu autoryzacja Windows Authentication.
Napisałem poniższe zapytanie do pliku .cmd

sqlcm -S nazwa_bazy -Q "SELECT * FROM osoby">D:\Lista.csv

który uruchamiam skrótem z pulpitu

Po uruchomieniu pliku mam w wyniku wszystkie osoby z tabeli.
Chciałbym jednak po uruchomieniu pliku cmd mieć możliwość wprowadzenia warunku np. nazwiska osoby.
Czy jest to możliwe?

Pozdrawiam

konto usunięte

Temat: Zapytanie w osql - czy można dodać warunek?

w pliku cmd

set /p zmienna=Podaj nazwisko:
sqlcmd -S nazwa_bazy -Q "SELECT * FROM osoby WHERE nazwisko='%zmienna%'">D:\Lista.csvPrzemysław R. edytował(a) ten post dnia 11.07.11 o godzinie 15:40
Michał P.

Michał P. Kierownik, AEGON
Towarzystwo
Ubezpieczeń na Życie
S.A.

Temat: Zapytanie w osql - czy można dodać warunek?

Witam,
Działa rewelacyjnie :-)

Jeszcze przy okazji spytam czy można sformatować aby w wyniku w pliku csv od razu kolumny były podzielone ? (obecnie mam wszystko w jednym wierszu i dopiero poprzez Dane / Tekst jako kolumny dzielę na kolumny).

konto usunięte

Temat: Zapytanie w osql - czy można dodać warunek?

bcp /?

polecenie do importu / eksportu danych z MSSQL-a

konto usunięte

Temat: Zapytanie w osql - czy można dodać warunek?

Michał P.:
pliku csv od razu kolumny były podzielone ? (obecnie mam wszystko w jednym wierszu i dopiero poprzez Dane / Tekst jako kolumny dzielę na kolumny).

przełącznik -s ustawia separator kolumn
sqlcmd -s ; rozdzieli kolumny średnikami
sqlcmd -s , rozdzieli kolumny przecinkami
a jeśli chcesz tabulatorami to zadziała tabulator umieszczony w cudzysłowie
Michał P.

Michał P. Kierownik, AEGON
Towarzystwo
Ubezpieczeń na Życie
S.A.

Temat: Zapytanie w osql - czy można dodać warunek?

Jarosław Fogt:
Michał P.:
pliku csv od razu kolumny były podzielone ? (obecnie mam wszystko w jednym wierszu i dopiero poprzez Dane / Tekst jako kolumny dzielę na kolumny).

przełącznik -s ustawia separator kolumn
sqlcmd -s ; rozdzieli kolumny średnikami
sqlcmd -s , rozdzieli kolumny przecinkami
a jeśli chcesz tabulatorami to zadziała tabulator umieszczony w cudzysłowie

Niestety jak wpisuję któryś z poniższych to w wyniku mam pusty plik

sqlcmd -S , nazwa_bazy -Q "SELECT.....
sqlcmd -S ; nazwa_bazy -Q "SELECT.....
sqlcmd -S "tabulator" nazwa_bazy -Q "SELECT.....

konto usunięte

Temat: Zapytanie w osql - czy można dodać warunek?

Michał P.:
Jarosław Fogt:
Michał P.:
pliku csv od razu kolumny były podzielone ? (obecnie mam wszystko w jednym wierszu i dopiero poprzez Dane / Tekst jako kolumny dzielę na kolumny).

przełącznik -s ustawia separator kolumn
sqlcmd -s ; rozdzieli kolumny średnikami
sqlcmd -s , rozdzieli kolumny przecinkami
a jeśli chcesz tabulatorami to zadziała tabulator umieszczony w cudzysłowie

Niestety jak wpisuję któryś z poniższych to w wyniku mam pusty plik

sqlcmd -S , nazwa_bazy -Q "SELECT.....
sqlcmd -S ; nazwa_bazy -Q "SELECT.....
sqlcmd -S "tabulator" nazwa_bazy -Q "SELECT.....

[-S server]
[-s colseparator]

wielkość ma znaczenie ;)
Michał P.

Michał P. Kierownik, AEGON
Towarzystwo
Ubezpieczeń na Życie
S.A.

Temat: Zapytanie w osql - czy można dodać warunek?

-s; i działa :-)

Dziękuję bardzo za pomoc
Pozdrawiam

konto usunięte

Temat: Zapytanie w osql - czy można dodać warunek?

no właśnie :)

a jeszcze od siebie dodam, że warto na początku selecta stosować "set nocount on;", dzięki temu nie będziesz miał na końcu wiersza typu "X row(s) affected" niezależnie od ustawień globalnych db - przydatne szczególnie kiedy masz kilka zapytań rzucanych do tego samego pliku
Michał P.

Michał P. Kierownik, AEGON
Towarzystwo
Ubezpieczeń na Życie
S.A.

Temat: Zapytanie w osql - czy można dodać warunek?

Jarosław Fogt:
no właśnie :)

a jeszcze od siebie dodam, że warto na początku selecta stosować "set nocount on;", dzięki temu nie będziesz miał na końcu wiersza typu "X row(s) affected" niezależnie od ustawień globalnych db - przydatne szczególnie kiedy masz kilka zapytań rzucanych do tego samego pliku

A w jaki sposób to się robi?
Czy można do jednego pliku wrzucać wynik zapytań z różnych baz? np.

Jeden serwer i baza danych np. o nazwie serwer_A
Select * from documents where .......

Drugi serwer i baza danych np. o nazwie serwer_B
Select * from documents where .......

Do obu baz danych mam Windows Authentication

Obecnie generuję dzienne raporty z 2 serwerów/baz danych z podobnymi danymi i robię to do 2 plików csv. jeżeli dałoby się to zrobić do jednego pliku to byłoby świetnie :-)
Łukasz Kurowski

Łukasz Kurowski Usque Ad Finem

Temat: Zapytanie w osql - czy można dodać warunek?

Michał P.:
A w jaki sposób to się robi?

W swoim poleceniu używasz > i to coś czyści zawartość pliku, przed zapisaniem danych. W kolejnych poleceniach użyj >>, co dopisze na końcu pliku, bez uprzedniego czyszczenia. Czyli...

Polecenie >D:\Lista.csv
Polecenie >>D:\Lista.csv
Polecenie >>D:\Lista.csv
Polecenie >>D:\Lista.csv
... i tak do bólu można dopisywać do jednego pliku.Łukasz Kurowski edytował(a) ten post dnia 28.07.11 o godzinie 09:11
Michał P.

Michał P. Kierownik, AEGON
Towarzystwo
Ubezpieczeń na Życie
S.A.

Temat: Zapytanie w osql - czy można dodać warunek?

A jak jeżeli generuję plik w poniższy sposób? (w ten sposób mam ładnie rozdzielone kolumny i polskie znaki)

sqlcmd -S nazwa_bazy -Q "select ........" -s; -o D:\wynik_zapytania.csv
Łukasz Kurowski

Łukasz Kurowski Usque Ad Finem

Temat: Zapytanie w osql - czy można dodać warunek?

Michał P.:
A jak jeżeli generuję plik w poniższy sposób? (w ten sposób mam ładnie rozdzielone kolumny i polskie znaki)

sqlcmd -S nazwa_bazy -Q "select ........" -s; -o D:\wynik_zapytania.csv

Wtedy na końcu można połączyć wyniki pośrednie tym poleceniem:
type D:\wynik_zapytania1.csv D:\wynik_zapytania2.csv > D:\wynik_zapytania.csv

albo zrobić tak:
sqlcmd -S nazwa_bazy -Q "select ........" -s; -o D:\wynik_zapytania.csv
sqlcmd -S nazwa_bazy -Q "select ........" -s; -o D:\wynik_zapytania_tmp.csv
type D:\wynik_zapytania_tmp.csv >> D:\wynik_zapytania.csv
sqlcmd -S nazwa_bazy -Q "select ........" -s; -o D:\wynik_zapytania_tmp.csv
type D:\wynik_zapytania_tmp.csv >> D:\wynik_zapytania.csv
...
del D:\wynik_zapytania_tmp.csv

Wojciech Gardziński

Wypowiedzi autora zostały ukryte. Pokaż autora
Michał P.

Michał P. Kierownik, AEGON
Towarzystwo
Ubezpieczeń na Życie
S.A.

Temat: Zapytanie w osql - czy można dodać warunek?

Łukasz Kurowski:
Michał P.:
A jak jeżeli generuję plik w poniższy sposób? (w ten sposób mam ładnie rozdzielone kolumny i polskie znaki)

sqlcmd -S nazwa_bazy -Q "select ........" -s; -o D:\wynik_zapytania.csv

Wtedy na końcu można połączyć wyniki pośrednie tym poleceniem:
type D:\wynik_zapytania1.csv D:\wynik_zapytania2.csv > D:\wynik_zapytania.csv

albo zrobić tak:
sqlcmd -S nazwa_bazy -Q "select ........" -s; -o D:\wynik_zapytania.csv
sqlcmd -S nazwa_bazy -Q "select ........" -s; -o D:\wynik_zapytania_tmp.csv
type D:\wynik_zapytania_tmp.csv >> D:\wynik_zapytania.csv
sqlcmd -S nazwa_bazy -Q "select ........" -s; -o D:\wynik_zapytania_tmp.csv
type D:\wynik_zapytania_tmp.csv >> D:\wynik_zapytania.csv
...
del D:\wynik_zapytania_tmp.csv

działa :-)
Dziękuję za pomoc
Michał P.

Michał P. Kierownik, AEGON
Towarzystwo
Ubezpieczeń na Życie
S.A.

Temat: Zapytanie w osql - czy można dodać warunek?

Jarosław Fogt:
no właśnie :)

a jeszcze od siebie dodam, że warto na początku selecta stosować "set nocount on;", dzięki temu nie będziesz miał na końcu wiersza typu "X row(s) affected" niezależnie od ustawień globalnych db - przydatne szczególnie kiedy masz kilka zapytań rzucanych do tego samego pliku

set nocount on;
Dziękuję za pomoc

Temat: Zapytanie w osql - czy można dodać warunek?

Wojciech Gardziński:
Ależ poważny problem! ;)

http://www.goldenline.pl/forum/1667616/konsolidacja-da...
(Oczywiście "baza internetowa" to dowolna baza danych, również excelki, SQLSy, a nawet CSVki)

Dziękuję, spam zgłoszony.

Wojciech Gardziński

Wypowiedzi autora zostały ukryte. Pokaż autora

Temat: Zapytanie w osql - czy można dodać warunek?

Wojciech Gardziński:
Wojciech T.:
Wojciech Gardziński:
Ależ poważny problem! ;)

http://www.goldenline.pl/forum/1667616/konsolidacja-da...
(Oczywiście "baza internetowa" to dowolna baza danych, również excelki, SQLSy, a nawet CSVki)

Dziękuję, spam zgłoszony.
Psze bardzo. Polecam się na przyszłość.
Niczego innego po "Senior Oracle DBA & Developer" się nie spodziewałem (a już na pewno nie rozwiązania problemu).
:) Jak się wkleja swój wątek gdzie popadnie, to niczego innego nie można się spodziewać. Temat, widzę, ma Pan założony, więc są dwie drogi. Albo czekać na rozwiązanie, albo zapłacić ludziom pieniądze i mieć problem rozwiązany. Spam nie jest najszczęśliwszym wyjściem, a tym bardziej obrażanie ludzi.
Mimo wszystko pozdrawiam.

Wojciech Gardziński

Wypowiedzi autora zostały ukryte. Pokaż autora

Następna dyskusja:

MSSQL rozbudowane zapytanie...




Wyślij zaproszenie do