0

我第一次尝试使用 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);

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

4

1 回答 1

0

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

SELECT * FROM "orschema"."pojistovna" AS "p" WHERE CAST("p".oid AS INTEGER) = 1;
于 2015-04-01T10:09:00.823 回答