gpt4 book ai didi

c# - Npgsql 异常 - "\"处或附近的语法错误

转载 作者:行者123 更新时间:2023-11-29 13:19:04 26 4
gpt4 key购买 nike

我正在尝试执行 postgresql 查询 (\list) 以使用 npsql 获取数据库列表。

string postgresQuery = @"\list"; 
ICollection<Schema> schemas = new List<Schema>();
string ConnectionString =
"Host=xxx;Username=postgres;Password=admin;Database=test;";
NpgsqlConnection conn = new NpgsqlConnection(ConnectionString);
NpgsqlCommand cmd = new NpgsqlCommand(postgresQuery, conn);
conn.Open();
NpgsqlDataReader dataReader = cmd.ExecuteReader();

执行查询时遇到““\”处或附近的语法错误”问题。该字符串包含如下所示的双斜杠 (\list) 而不是单斜杠 (\list)。如果有任何解决方案,请告诉我。提前致谢。

最佳答案

\list 不是 SQL 查询。它是 psql-tool 的命令。

要使用 SQL 获取所有数据库的列表,请使用以下查询:

SELECT datname FROM pg_database
WHERE datistemplate = false;

检查 How do I list all databases and tables using psql?

pg_database表的字段描述here

数据库的所有者存储在引用pg_authid 表的datdba 字段中。可以找到用户拥有的所有数据库,如 How to list databases owned by rolename in postgresql 所示。与

SELECT datname 
FROM pg_database
JOIN pg_authid ON pg_database.datdba = pg_authid.oid
WHERE rolname = 'username'

当然,查询应该是参数化的:

SELECT datname 
FROM pg_database
JOIN pg_authid ON pg_database.datdba = pg_authid.oid
WHERE rolname = :username

pg_authid 描述here

关于c# - Npgsql 异常 - "\"处或附近的语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44948992/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com