Làm thế nào để nối các biến psql?


8

Làm thế nào tôi có thể nối hai biến psql (PostgreSQL client)? Tôi muốn tạo một đường dẫn tuyệt đối bằng cách ghép một biến đường dẫn thư mục và một biến tên tệp.

Tôi đã thử điều này:

\set path '/tmp/'
\set file 'foo'
\echo :path:file

Nhưng psql đặt một khoảng trắng giữa đường dẫn và tệp và kết quả đầu ra:

/tmp/ foo

Câu trả lời:


8
\set path '/tmp/'
\set file 'foo'
\set pf :path:file \echo :pf
/tmp/foo

Tại sao điều này làm việc? Tôi trích dẫn hướng dẫn ở đây :

\ đặt [tên [giá trị [...]]]

Đặt tên biến nội bộ thành giá trị hoặc, nếu có nhiều hơn một giá trị được đặt, để ghép nối tất cả chúng . [...]

Nhấn mạnh mỏ.


1
Thậm chí tốt hơn của tôi
dezso

4

Thử cái này:

\set path /tmp/
\set file foo
\qecho :path:file \o | sed s/\ //
/tmp/foo

\qechoghi vào kênh đầu ra truy vấn (không giống như \echoghi vào đầu ra tiêu chuẩn). \o |sau đó chuyển hướng đầu ra sang lệnh tiếp theo.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.