【问题标题】:Comparing CLOB, BLOB values in Oracle, Postgres and SQLite比较 Oracle、Postgres 和 SQLite 中的 CLOB、BLOB 值
【发布时间】:2017-09-30 02:53:55
【问题描述】:

这涉及比较两个不同数据库架构中的表。要求是遍历一组已知的表,并确保两个schema中的表数据相同。目前我们正在 Oracle 上进行类似的操作,查询如下:

对于每个表;

SELECT COUNT(*) FROM (SELECT * FROM SCHEMA1.MY_TABLE MINUS (SELECT * FROM SCHEMA2.MY_TABLE));

但是上面的查询在涉及到大对象时在 oracle 中有一个限制:

ERROR at line 1: ORA-00932: inconsistent datatypes: expected - got BLOB

显然,当涉及到detailed here 这样的大对象时,Oracle 中的所有集合操作都存在限制。可以通过使用 DB 特定函数(如 dbms_lob.compare)来克服它。

由于我对 Postgres 和 SQLite 的了解有限,我想知道;

  • 在涉及 LOB 值时,在 Postgres 和 SQLite 中使用联合、减号或相交等集合运算符是否有类似的限制?
  • 如果有限制,是否有任何特定于数据库的函数可用于 LOB 比较?

【问题讨论】:

  • Postgres 中的等效数据类型是text 或无限的varchar,它可以在那里正常工作。

标签: database postgresql sqlite blob clob


【解决方案1】:

在 PostgreSQL/SQLite 中,text/TEXTbytea/BLOB 数据类型的行为就像较小的值,可以正常进行比较。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-05
    • 1970-01-01
    • 2010-11-04
    • 2018-07-01
    • 2013-02-05
    • 2014-03-01
    • 2014-04-04
    相关资源
    最近更新 更多