【发布时间】:2014-03-18 21:31:14
【问题描述】:
我正在使用 Oracle 的控制台数据库快捷版,并且我正在使用自己的数据类型创建数据库。一切都可以创建和插入新数据,但是当我从我的数据类型中进行选择时,例如“方向”,Oracle 会返回错误 00932,“数据类型不一致”。
我执行这段代码:
CREATE TYPE lista_tel_t AS VARRAY(10) OF VARCHAR2(20) ;
CREATE TYPE direccion_t AS OBJECT (
calle VARCHAR2(200),
ciudad VARCHAR2(200),
prov CHAR(2),
codpos VARCHAR2(20)
) ;
CREATE TYPE cliente_t AS OBJECT (
clinum NUMBER,
clinomb VARCHAR2(200),
direccion direccion_t,
lista_tel lista_tel_t
) ;
CREATE TABLE cliente_tab OF cliente_t(clinum PRIMARY KEY);
当我从一个类型中进行选择时,问题就来了,例如:
SELECT direccion FROM cliente_tab;
当我进行此选择时,它会返回以下错误:
ORA-00932: inconsistent datatypes: expected NUMBER got DIRECCION_T
我的问题是... 我怎样才能正确选择并显示结果?
【问题讨论】:
-
根据您的代码,不应引发
ORA-00932。尝试在 SQL*PLUS 或 SQL Developer 或任何其他客户端而不是 Oracle XE 图形控制台中执行select语句。 -
你能展示一些示例数据吗
-
只是为了强调@NicholasKrasnov 您的代码在 SQL Fiddle 中运行 - sqlfiddle.com/#!4/0039fe/1