<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Forum PostgreSQL - Wyniki eksporty przy pomocy COPY]]></title>
		<link>https://forum.postgresql.org.pl/viewtopic.php?id=1196</link>
		<description><![CDATA[Najświeższe odpowiedzi w Wyniki eksporty przy pomocy COPY.]]></description>
		<lastBuildDate>Tue, 17 Jan 2012 15:20:04 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Odp: Wyniki eksporty przy pomocy COPY]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=3356#p3356</link>
			<description><![CDATA[Jeżeli bardzo Ci zależy na tym, żeby COPY samo z siebie dodawało zakończenie linii jako "\r\n" to zawsze można przerobić Postgresa pod swoje potrzeby. Odpowiedni kod znajdziesz w src/backend/commands/copy.c:

[code]                /* Default line termination depends on platform */
#ifndef WIN32
                CopySendChar(cstate, '\n');
#else
                CopySendString(cstate, "\r\n");
#endif[/code]

Ew. można by dodać opcję np. EOL [AS]. dzięki, której bezpośrednio w COPY określisz jaką chcesz końcówkę np.:

[code]Copy (Select 1,2,3 From tabela Where cos In (1,2,3,4,5)) To katalog/plik With Csv Delimiter ';' Eol E'\r\n'[/code]

Wydaje się jednak, że wystarczyłby do tego zewnętrzne narzędzie (dla Windows może coś takiego jak [url]http://www.softpedia.com/get/System/System-Miscellaneous/End-of-Line-Converter.shtml[/url] ?), albo dopasowanie samego programu.]]></description>
			<author><![CDATA[dummy@example.com (gszpetkowski)]]></author>
			<pubDate>Tue, 17 Jan 2012 15:20:04 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=3356#p3356</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Wyniki eksporty przy pomocy COPY]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=3355#p3355</link>
			<description><![CDATA[Tylko jest taka sprawa że program działa na windowsie a baza stoi na linuxie. Nie mam pomysłu jak mozna to by było załatwić żeby mi się ten plik generował tak jak bym chciał


[quote=gszpetkowski]sed to standardowe narzędzie dostępne w "dobrych pochodnych Unix'a", które służy do przetwarzania danych tekstowych (nie jest związane stricte z PostgreSQL, ale niezmiernie przydatne), bez problemu możesz nim zamienić końcówki linii po wykonaniu COPY (ew. Perl'em, ale to już był zbyt duży kaliber). Zgadza się, notatnik z Windows wymaga, aby koniec linii był jako powrót karetki oraz znak nowej linii.[/quote]]]></description>
			<author><![CDATA[dummy@example.com (hifek)]]></author>
			<pubDate>Mon, 16 Jan 2012 20:21:29 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=3355#p3355</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Wyniki eksporty przy pomocy COPY]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=3352#p3352</link>
			<description><![CDATA[sed to standardowe narzędzie dostępne w "dobrych pochodnych Unix'a", które służy do przetwarzania danych tekstowych (nie jest związane stricte z PostgreSQL, ale niezmiernie przydatne), bez problemu możesz nim zamienić końcówki linii po wykonaniu COPY (ew. Perl'em, ale to już był zbyt duży kaliber). Zgadza się, notatnik z Windows wymaga, aby koniec linii był jako powrót karetki oraz znak nowej linii.]]></description>
			<author><![CDATA[dummy@example.com (gszpetkowski)]]></author>
			<pubDate>Thu, 12 Jan 2012 23:43:52 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=3352#p3352</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Wyniki eksporty przy pomocy COPY]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=3351#p3351</link>
			<description><![CDATA[Problem jest taki że ten wyeksportowany muszę zaimportować przez www i właśnie na końcu linii się wszystko rozpada. Otwierając plik w samym notatniku muszę widzieć podział na linie. A bez tego E'\r\n' mam wszystkie linie zlane w jedną. 

Jeszcze za dobrze postgresa nie znam i może się głupio zapytam: co to jest ten sed?


[quote=gszpetkowski]Najprościej byłoby pominąć E'\r\n', copy samo doda odpowiedni znak końca lini:

[quote]COPY TO will terminate each row with a Unix-style newline ("\n"). Servers running on Microsoft Windows instead output carriage return/newline ("\r\n"), but only for COPY to a server file; for consistency across platforms, COPY TO STDOUT always sends "\n" regardless of server platform.[/quote]

Jeżeli mimo powyższego zamiast "\n" potrzebujesz końcówki jako "\r\n", to samo copy nie daje takie opcji, ale zawsze można użyć np. sed'a.[/quote]]]></description>
			<author><![CDATA[dummy@example.com (hifek)]]></author>
			<pubDate>Thu, 12 Jan 2012 20:50:38 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=3351#p3351</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Wyniki eksporty przy pomocy COPY]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=3349#p3349</link>
			<description><![CDATA[Najprościej byłoby pominąć E'\r\n', copy samo doda odpowiedni znak końca lini:

[quote]COPY TO will terminate each row with a Unix-style newline ("\n"). Servers running on Microsoft Windows instead output carriage return/newline ("\r\n"), but only for COPY to a server file; for consistency across platforms, COPY TO STDOUT always sends "\n" regardless of server platform.[/quote]

Jeżeli mimo powyższego zamiast "\n" potrzebujesz końcówki jako "\r\n", to samo copy nie daje takie opcji, ale zawsze można użyć np. sed'a.]]></description>
			<author><![CDATA[dummy@example.com (gszpetkowski)]]></author>
			<pubDate>Thu, 12 Jan 2012 15:59:58 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=3349#p3349</guid>
		</item>
		<item>
			<title><![CDATA[Wyniki eksporty przy pomocy COPY]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=3348#p3348</link>
			<description><![CDATA[Mam taki eksport do pliku csv spod bazy:

copy (select 1,2,3, E'\r\n' from tabela where cos in (1,2,3,4,5) to katalog/plik with csv delimiter ';'. 

Jak wykonuję to to otrzymuję dane w postaci:

1;2;3,"
"1;2;3"
"1;2;3"
"1;2;3"
"

Chciałbym te puste pole tekstowe pominąć, czyli otrzymać wynik w takiej postaci w pliku:

1;2;3
1;2;3
1;2;3
1;2;3

Z góry dzięki za pomoc. Pozdrawiam]]></description>
			<author><![CDATA[dummy@example.com (hifek)]]></author>
			<pubDate>Thu, 12 Jan 2012 14:48:42 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=3348#p3348</guid>
		</item>
	</channel>
</rss>
