Potrzebuję wyeksportować niektóre dane za pomocą narzędzia BCP programu SQL Server 2000. Czasami moje dane zawierają znaki, takie jak \ ti \ n, które muszę używać jako terminatory kolumn i wierszy. W jaki sposób uzyskać BCP, aby uniknąć znaków, które używa jako terminatorów, ponieważ wysyła dane, tak że mogę faktycznie zaimportować dane do innego programu?Uzyskiwanie pliku bcp.exe w celu usuwania terminatorów
Na przykład jedną z moich kolumn są dane tekstowe, a także tabulatory i znaki nowej linii. BCP po prostu eksportuje je tak jak jest, a program, który próbuję zaimportować, zostaje pomieszany, ponieważ dane kończą się w środku linii i/lub linia zawiera dodatkowe kolumny bez wyraźnego powodu.
Wydaje się, że to bardzo, bardzo, bardzo podstawowa funkcja do włączenia do eksportera danych, ale żaden z the command-line options wydaje się o tym wspomnieć. (Dlaczego to nie jest tylko domyślne, jest poza mną.) Czy brakuje mi czegoś?
To naprawdę ma sens - na przykład, używając COPY FROM w PostgreSQL, zamieni sekwencję '\ n' z powrotem na rzeczywisty znak nowej linii w kolumnie tekstowej. I niestety nie mogę określić ogranicznika wiersza w PostgreSQL. – Kev
Ponadto, mimo że różne terminatory to jedno obejście, potrzeba naprawdę krótkiego czasu na zastąpienie zapytania. Byłoby znacznie lepiej, gdyby BCP mógł poprawnie uciec z kolumn tekstowych. – Kev
Ani osql, ani sqlcmd nie obsługują tego. Co jeśli masz pole kończące się na przykład postacią ucieczki? A jeśli czytasz informacje PostgreSQL, wspomina o podejrzanych ucieczkach ... Serwer SQL jest całkowicie przewidywalny, nie? – gbn