使用 REF 从 table (SELECT) 插入数据 - Oracle 数据库

Inserting data from table (SELECT) with REF - Oracle Database

我正在尝试将 Pacient table 中的所有数据插入到 Pacient_OR table(对象关系)。有没有一种简单的方法可以做到这一点(一个脚本),如果 Pacient table 具有带有 Pojistovna_ID (外键)的列并且在 Pacient_OR table 中有 Pojistovna_OR。 Pojistovna 和 Pojistovna_OR 都填充了相同的数据,但一个是关系数据,第二个是基于对象类型。

我试过这个(还有更多):

 INSERT INTO pacient_or
            (pacient_or.id,
             pacient_or.jmeno,
             pacient_or.prijmeni,
             pacient_or.datum_narozeni,
             pacient_or.rodne_cislo,
             pacient_or.telefon,
             pacient_or.krevni_skupina,
             pacient_or.rodinna_anamneza,
             pacient_or.adresa,
             pacient_or.pojistovna)
SELECT pacient.id,
       pacient.jmeno,
       pacient.prijmeni,
       pacient.datum_narozeni,
       pacient.rodne_cislo,
       pacient.telefon,
       pacient.krevni_skupina,
       pacient.rodinna_anamneza,
       Adresa_typ(pacient.ulice, pacient.mesto, pacient.psc),
       (SELECT Ref(poj)
        FROM   pacient pac,
               pojistovna_or poj
        WHERE  pac.pojistovna_id = poj.id)
FROM   pacient;  

此代码抛出错误:

single-row subquery returns more than one row

不要在子查询中使用 pacient pac。 Link 将其发送给您的主要从子句中的 pacient。最好不要为此使用子查询。