당신은 아마 당신이 SQL 또는 통해 DELIMITER "|"
을 선언 할 수 있습니다 알고 있습니다 DBDELIMITER 환경 변수 내가 아는 한, 레코드 터미네이터를 NEWLINE
에서 다른 것으로 변경하는 방법은 없습니다.
결과를 반복하고 사용자가 파일에 쓰는 변수에 추가하는 사용자 지정 함수를 작성하거나 피벗이라고하는 RUN
을 통해 호출하는 별도의 스크립트를 작성해야합니다. 열에 행의 데이터, 예를 들면 :
UNLOAD TO file.unl SELECT col FROM table WHERE ...;
RUN "/usr/bin/perl -ni -e 'chomp; print' file.unl";
내가 가정 한 당신은 유닉스에서 실행 펄 편리를 가지고 있습니다. 그렇지 않다면 Windows에서 perl을 설치하는 것보다 반복적 인 제안을 더 실용적으로 생각할 수 있습니다. 특히이 코드가 실행되는 컴퓨터에 대한 제어 권한이 제한적인 경우에는 더욱 그렇습니다.
업데이트
내 4GL은 매우 녹슨이지만, 나는 예를 들어 아주 기본적인 일, decribing되었다
DEFINE command CHAR(10100)
DEFINE long_string CHAR(10000)
DECLARE curs1 CURSOR FOR
SELECT col FROM table WHERE ...
FOREACH curs1 INTO col1
LET long_string = long_string CLIPPED || col1 CLIPPED || '|'
END FOREACH
LET command = "echo '" || long_string CLIPPED || "' > file.unl"
RUN command
그것은 15 년이나 내가 어떤 4GL을 쓴 이후로 더를, 그래서 치료하는 의사로 - 기껏해야, 제발. 파일에 직접 쓸 수있는 더 좋은 방법이있을 수 있습니다. 솔직히 기억이 안납니다.
출처
2012-07-07 07:11:50
RET
이 작업을 수행 할 수 있습니다 http://stackoverflow.com/a/11356573/1216425 – teran
@teran : 4GL에서 ** FOR XML PATH .. **를 설명 할 수 있습니까? –
죄송합니다. 4gl을 사용하고 있다는 것에 대해서는 언급하지 않았습니다. 위의 대답은 MS SQL을위한 것입니다; – teran