Wie Sie habe auch ich nach einer Lösung gesucht, die enthält keine Zeilenumbrüche . (Während sie in SQL sicher sein mögen, sind sie in meinem Fall nicht sicher, und ich habe einen großen Textblock zu bewältigen)
Dies ist wohl genauso hässlich, aber Sie können backslash-escape Zeilenumbrüche in einem heredoc, um sie aus der resultierenden Zeichenfolge wegzulassen:
conn.exec <<~END_OF_INPUT
select attr1, attr2, attr3, attr4, attr5, attr6, attr7 \
from table1, table2, table3, etc, etc, etc, etc, etc, \
where etc etc etc etc etc etc etc etc etc etc etc etc etc
END_OF_INPUT
Beachten Sie, dass dies nicht ohne Interpolation möglich ist (d.h. <<~'END_OF_INPUT'
), seien Sie also vorsichtig. #{expressions}
werden hier ausgewertet, während sie in Ihrem ursprünglichen Code nicht ausgewertet werden. A. Wilsons Antwort kann aus diesem Grund besser sein.