psql \copy 中的变量替换

2023-12-22

是否可以在 PSQL 控制台导出文件中将当前日期放在文件名末尾? 导出的文件名应该是这样的表_20140710.csv可以动态地做到这一点吗? - 日期的格式可以与上面的不同,但这并不重要。

这就是我的意思的例子:

\set curdate current_date
\copy (SELECT * FROM table) To 'C:/users/user/desktop/table_ ' || :curdate  || '.csv' WITH DELIMITER AS ';' CSV HEADER

例外的是\copy元命令不扩展变量是(同时)有记录的 https://www.postgresql.org/docs/current/app-psql.html#APP-PSQL-META-COMMANDS-COPY

与大多数其他元命令不同,该行的整个剩余部分始终被视为 \copy 的参数,并且在参数中既不执行变量插值也不执行反引号扩展。

要解决此问题,您可以分多个步骤构建、存储和执行命令(类似于 Clodoaldo Neto 给出的解决方案):

\set filename 'my fancy dynamic name'
\set command '\\copy (SELECT * FROM generate_series(1, 5)) to ' :'filename'
:command

有了这个,你需要加倍(转义)任何\ and '在嵌入的元命令中。请记住\set将所有其他参数连接到第二个参数,因此参数之间需要引号空格。您可以在执行之前显示命令(:command) with \echo :command.

作为本地的替代方案\set命令,您还可以使用 SQL 构建命令服务器端(最好的方法取决于动态内容的来源):

SELECT '\copy (SELECT * FROM generate_series(1, 5)) to ''' || :'filename' || '''' AS command \gset
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

psql \copy 中的变量替换 的相关文章

随机推荐

  • 如何在 clang 中从 AST 中排除标头?

    我正在使用 clang 生成 AST 我有以下文件 lambda cpp 要解析 include
  • 业力测试运行程序未运行任何测试

    我正在使用 karma 和 jasmine 并按照在线指南进行安装 npm install save dev karma 和其他必需品 i ran node modules karma bin karma start and karma s
  • 如何避免 C++ 中的连续释放/分配?

    考虑以下代码 class A B b an A object owns a B object A b NULL we don t know what b will be when constructing A void calledVery
  • 在打字稿中扩展枚举

    我希望在枚举中重用某些值 有关如何实现此类功能的任何建议 enum someEnum a Some String b 2 enum extendedEnum c string b someEnum b type someEnumType
  • 关闭终端本地回显的含义

    我有一个在 Linux 操作系统上运行的 C 应用程序 该应用程序从终端获取键盘按键并将其发送到远程服务器 下面的代码打开终端 save old terminal attributes if tcgetattr 0 ttyold 0 fpr
  • 在 Apps 脚本中将一维数组写入工作表列

    我正在尝试使用 Apps 脚本将长一维数组写入工作表的列中 但无法使其工作 尝试过 setValues 但它需要一个二维数组 function writeArrayToColumn var mainSheet SpreadsheetApp
  • 从文件中获取原始文件名

    我有一个需要 System File 的操作 public bool UploadToServer File file 我想在文件到达服务器后使用该文件的原始名称 我看过MSDN 的文件类 https msdn microsoft com
  • 计算表记录的最大存储大小?

    有没有办法确定 SQL Server 中记录的最大大小 而不是手动执行 例如 CREATE TABLE test id INT PRIMARY KEY IDENTITY 1 1 name VARCHAR 256 test date DATE
  • 通过电子邮件发送谷歌静态地图

    我可以在我的网站上显示谷歌静态地图图像 我创造 img src url 与电子邮件中的相同网址 图像以非常不同的方式显示 即世界地图 我检查了 chrome 中的元素 发现邮件服务器在其前面添加了一个 代理 url https ci6 go
  • TBXML 将复杂的 xml 解析为数组

    我有一个 xml 响应 需要将其设置为数组 问题是我需要访问每个元素并将其存储在数组中 以便我可以将其用于表视图
  • 如何使用复选框将电子邮件保存给订阅者?

    选中该框后 如何在单击 保存 后将用户的电子邮件从 输入电子邮件 添加到我的 mailchimp 订户列表中 用户 new html erb Get blog posts from Anthony Galli CEO Founder abo
  • 通过外部接口接收复杂的 JavaScript 值

    我正在尝试使用提供的外部对象通过 TWebBrowser 使用 TEmbeddedWB 接收并可能发送复杂值 例如 在 javascript 中 我会尝试使用公开的方法并以数组作为参数 var test 123 abc external s
  • 在 capistrano 部署之前在开发机器上进行资产预编译

    我希望在 capistrano 对代码进行打包 tar 打包 之前在我的开发计算机上进行资产预编译 并且预编译资产已包含在最终部署包中 当我尝试内置的 capistrano 食谱时load deploy assets 它运行rake RAI
  • 想要设置ul的liinnerHTML

    我正在编写一个 javascript 函数 我得到一个ul来自我的 HTML 的对象并想要设置其中之一的文本li elements in theul 我正在做 list document getElementById list name 然
  • CSS:以位置显示图像:固定但允许用户缩放

    I ve created a page that scales large images to fit the window however it does not allow the user to zoom once the image
  • mongodb查询结果不带字段名

    有没有办法获取仅包含值而不包含字段名称的 mongodb 查询结果 我的查询给出了以下结果 t number 2508 t number 2560 t number 2599 理想情况下我希望查询结果是 2508 2560 2599 或者如
  • 列出 AWS SSM Parameter Store 中的所有参数

    如何列出 AWS Systems Manager SSM 参数存储中的所有参数 我正在使用 AWS CLI 我可以将它们存储为aws ssm put parameter 我可以用以下方式获取它们aws ssm get parameter 我
  • 如何使用C从文件中读取二维数组?

    I tried void read grid from file int grid const size t row const size t column FILE inf size t x y for x 0 x lt row x fo
  • 尝试使用 Terraform 创建 AWS VPC 安全组时出现循环错误

    我想创建 2 个 VPC 安全组 一台用于 VPC 的堡垒主机 一台用于私有子网 BASTION resource aws security group VPC BastionSG name VPC BastionSG descriptio
  • psql \copy 中的变量替换

    是否可以在 PSQL 控制台导出文件中将当前日期放在文件名末尾 导出的文件名应该是这样的表 20140710 csv可以动态地做到这一点吗 日期的格式可以与上面的不同 但这并不重要 这就是我的意思的例子 set curdate curren