select语句上的Oracle Error Inconsistent数据类型

时间:2014-02-18 21:15:04

标签: oracle select types

我正在使用Oracle的控制台 Database Express Edition ,我正在使用自己的数据类型创建数据库。一切都可以创建和插入新数据,但是当我从我的数据类型中选择时,例如“direccion”,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

我的问题是...... 如何进行选择并正确显示结果?

1 个答案:

答案 0 :(得分:0)

尝试:

SELECT direccion.calle,
       direccion.ciudad,
       direccion.prov,
       direccion.codpos
  FROM cliente_tab;

或者,如果您想在PL / SQL中使用对象,您可以尝试批量将表格收集到一组对象中。

有关详细信息,请参阅Oracle® Database Object-Relational Developer's Guide