如何使用SQL验证字段中的数据是否属于特定的数据类型?
我需要从Postgres服务器上提取一大块数据。在执行此操作之前,我希望确保我提取的数据具有正确的类型(可以是文本或二进制) 因此,我需要通过SQL查询查看服务器上的数据,如果类型正确,则返回true,否则返回false。(使用SQL进行查看还可以确保服务器实际上已准备好处理查询)如何使用SQL验证字段中的数据是否属于特定的数据类型?,sql,postgresql,Sql,Postgresql,我需要从Postgres服务器上提取一大块数据。在执行此操作之前,我希望确保我提取的数据具有正确的类型(可以是文本或二进制) 因此,我需要通过SQL查询查看服务器上的数据,如果类型正确,则返回true,否则返回false。(使用SQL进行查看还可以确保服务器实际上已准备好处理查询) 但是,经过长时间的尝试,我就是无法弄清楚如何为此编写SQL查询 这在很大程度上取决于你遗漏的细节。通常,应用程序会提前知道它要查询的字段的数据类型。如果没有,可能有各种各样的原因,适当的选择取决于原因 选择包括:
但是,经过长时间的尝试,我就是无法弄清楚如何为此编写SQL查询 这在很大程度上取决于你遗漏的细节。通常,应用程序会提前知道它要查询的字段的数据类型。如果没有,可能有各种各样的原因,适当的选择取决于原因 选择包括:
- 如果您知道模式、表和列名,请在中查找,例如 这适用于大多数数据库,它不是特定于PostgreSQL的
- 一些客户端驱动程序公开数据库和/或查询元数据—例如,在PgJDBC中,您可以获取有关数据库的信息,甚至可以获取特定查询。同样,这不是特定于PostgreSQL的
- 如果您只有SQL查询,并且正在使用低级驱动程序,如
,请发送libpq
协议消息。服务器将回复数据类型和大小。您不能在SQL级别执行此操作,只能在协议级别执行此操作descripe
- 您可以使用
函数获取特定标量值的类型pg_typeof
select data_type, is_nullable
from information_schema.columns
where table_schema = 'public' and table_name = 'test' and column_name = 'f';