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

それを行う1つの方法はCAST関数を使用することですが、これがこのクエリの速度を低下させないかどうかはわかりません:

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