2015-04-01 120 views
0

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

错误:数据类型不兼容或“=”

回答

0

一种方式做到这一点是使用CAST funcion没有可比性,但我不知道这是否会不这个查询慢下来:

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