2015-04-01 6 views
0

Я пытаюсь использовать объектно-ориентированные функции DB2 в первый раз. Я создал типы, типизированные таблицы и вставленные данные. Проблема в том, что я не могу сравнивать генерируемые пользователем OID.Сравнение OID в IBM DB2

Мой тип:

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 несильно, но я не уверен, если это не будет замедлять этот запрос:

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