IBM DB2中的OID比较
问题描述:
我想第一次使用DB2的面向对象功能。我创建了类型,类型表和插入数据。问题是我无法比较用户生成的OID。IBM 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');
但这种选择并没有在所有的工作,但在IBM的知识是以同样的方式完成的:
SELECT * FROM "orschema"."pojistovna" AS "p"
WHERE "p"."oid" = "orschema"."pojistovna_typ"(1);
错误:数据类型不兼容或“=”
答
一种方式做到这一点是使用CAST funcion没有可比性,但我不知道这是否会不这个查询慢下来:
SELECT * FROM "orschema"."pojistovna" AS "p" WHERE CAST("p".oid AS INTEGER) = 1;