Oracle REF数据类型

时间:2019-03-29 12:27:49

标签: sql oracle inheritance plsql user-defined-types

我正在尝试使此查询正常工作。我想在Oficina_bancaria的嵌套表Cuentas中插入存储在Cuenta表中的Corriente_udt行的ref():

(SELECT ref(TREAT(VALUE(c) AS Corriente_udt)) FROM Cuenta c WHERE c.IBAN = '1654ES6639071895270420369756');

Corriente_udt是Cuenta_udt的子类型,它是Cuenta表的数据类型。

这是我得到的错误:

ORA-00907: missing right parenthesis

我已经尝试过:

(SELECT ref(c) FROM Cuenta c WHERE c.IBAN = '1654ES6639071895270420369756');

但是我也得到一个错误:

ORA-00932: inconsistent datatypes: expected REF USER.CORRIENTE_UDT got REF USER.CUENTA_UDT

这是我的完整查询:

INSERT INTO TABLE (SELECT o.Cuentas FROM Oficina_bancaria o WHERE o.Codigo = 1439 AND o.Direccion = 'Alameda de Esperanza Vives 978 Valencia, 32678') (SELECT ref(TREAT(VALUE(c) AS Corriente_udt)) FROM Cuenta c WHERE c.IBAN = '1654ES6639071895270420369756');

1 个答案:

答案 0 :(得分:2)

  

我想在Oficina_bancaria的嵌套表Cuentas中插入存储在Cuenta表中的Corriente_udt行的ref()

尚不清楚您要从描述中获得什么,但是我认为您想在{{ 1}}表。

查询

Cuentas

或者,也许:

corrientes_array

(如果在Oficina_bancaria表中找不到引用,则不应将引用插入数组中。)

db <>提琴here