Xml 在psql脚本中使用变量
我想将PostgreSQL数据库的多个表写入XML文件 以下脚本命令执行此任务(我需要混合使用大写和小写的模式名和表名): 然而,每当我想要导出另一个模式时,我必须在每一行代码中替换模式的名称(这不是什么大问题,但并不优雅) 将整个脚本的模式设置为“DbSchema”会很优雅。但是我还没有找到正确的语法。以下示例不起作用(错误消息:关系“DbSchema”不存在): 或者,我可以为模式名称设置一个变量。但以下代码也给出了一条错误消息:tabl“DbSchema”的子句条目中缺少:Xml 在psql脚本中使用变量,xml,postgresql,psql,Xml,Postgresql,Psql,我想将PostgreSQL数据库的多个表写入XML文件 以下脚本命令执行此任务(我需要混合使用大写和小写的模式名和表名): 然而,每当我想要导出另一个模式时,我必须在每一行代码中替换模式的名称(这不是什么大问题,但并不优雅) 将整个脚本的模式设置为“DbSchema”会很优雅。但是我还没有找到正确的语法。以下示例不起作用(错误消息:关系“DbSchema”不存在): 或者,我可以为模式名称设置一个变量。但以下代码也给出了一条错误消息:tabl“DbSchema”的子句条目中缺少: 我尝试了许多带
我尝试了许多带引号和不带引号的变体,但没有找到正确的语法。我做错了什么?试试这样的方法
SELECT table_to_xml('"' || t.dbschema || '"."DbTable"', false, true, '')
FROM (VALUES ('DbSchema')) AS t (dbschema);
\set schema "DbSchema"
SELECT table_to_xml(:'schema' || '."DbTable"', false, true, '');
使用psql,您可以这样做
SELECT table_to_xml('"' || t.dbschema || '"."DbTable"', false, true, '')
FROM (VALUES ('DbSchema')) AS t (dbschema);
\set schema "DbSchema"
SELECT table_to_xml(:'schema' || '."DbTable"', false, true, '');
最后的解决办法是:
\set dbschema 'DbSchema'
SELECT table_to_xml('"' || :'dbschema' || '"."DbTable"', false, true, '');
psql显然不连接字符串。我正在psql脚本中使用这个SELECT语句。非常感谢!就这样!我不得不再做一个修改:““““DbTable””——在点前面再加一个引号。
\set dbschema 'DbSchema'
SELECT table_to_xml('"' || :'dbschema' || '"."DbTable"', false, true, '');