【问题标题】:OID comparison in IBM DB2IBM DB2 中的 OID 比较
【发布时间】:2015-04-01 08:38:54
【问题描述】:

我第一次尝试使用 DB2 的面向对象特性。我已经创建了类型、类型表和插入的数据。问题是我无法比较用户生成的 OID。

我的类型:

CREATE TYPE "orschema"."pojistovna_typ" AS(
nazev VARCHAR(30), 
cislo VARCHAR(3))
INSTANTIABLE
REF USING INTEGER
MODE DB2SQL;

我输入的表格:

CREATE TABLE "orschema"."pojistovna" OF "orschema"."pojistovna_typ"
(REF IS oid USER GENERATED);

使用命令成功插入数据:

INSERT INTO "orschema"."pojistovna" (oid, nazev, cislo)
  VALUES("orschema"."pojistovna_typ"(1), 'ccc', '105');

但是这个 SELECT 根本不起作用,但在 IBM 的知识中,它是以同样的方式完成的:

SELECT * FROM "orschema"."pojistovna" AS "p"
WHERE "p"."oid" = "orschema"."pojistovna_typ"(1);

错误:数据类型与“=”不兼容或不可比较

【问题讨论】:

    标签: db2 compare sqldatatypes oid object-relational-model


    【解决方案1】:

    一种方法是使用 CAST 函数,但我不确定这是否不会减慢查询速度:

    SELECT * FROM "orschema"."pojistovna" AS "p" WHERE CAST("p".oid AS INTEGER) = 1;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多