Я делаю сценарий SQL3, в котором я создаю типы, а затем создаю таблицы и вложенные таблицы. Получаемая проблема возникает, когда я хочу вставить строку, в которой говорится:
ORA-00932: несовместимые типы данных: ожидаемый UDT получил CHAR
это Воспроизведение проблемы, когда типы и таблицы уже созданы, можно попытаться вставить: https://www.tutorialspoint.com/oracle_terminal_online.php?fbclid=IwAR0GgaLe2_GvGsEb80eB-D0uKDSDJDr1WNBPiK3mHQqpJQrtfacQ1cf03NA
Ниже приведен сценарий создания типов
CREATE TYPE T_Personne ;
/
CREATE TYPE T_SET_Tag AS TABLE OF Varchar2(30);
/
CREATE TYPE T_Message AS OBJECT (
Texte Varchar2(500),
DateEcrit Date,
Tags T_SET_Tag
);
/
CREATE TYPE T_SET_Message AS TABLE OF T_Message;
/
CREATE TYPE T_Contact AS OBJECT(
Per REF T_Personne,
Depuis Date
);
/
CREATE TYPE T_SET_Contact AS TABLE OF T_Contact;
/
CREATE OR REPLACE TYPE T_Personne AS OBJECT (
Prenom Varchar2(30),
Suit T_SET_Contact,
Ecrit T_SET_Message
);
/
* 1014. * это скрипт создания таблицы
CREATE TABLE TAB_Personne OF T_Personne
NESTED TABLE Suit STORE AS TAB_suit,
NESTED TABLE Ecrit STORE AS TAB_ecrit(
NESTED TABLE Tags STORE AS TAB_Tags
);
и, наконец, скрипт, который я использую для вставки моих новых строк
INSERT INTO TAB_Personne VALUES(
'Baam',
T_SET_Contact(),
T_SET_Message()
);
INSERT INTO TAB_Personne VALUES(
'Rachel',
T_SET_Contact(
(SELECT REF(P)
FROM TAB_Personne P
WHERE P.Prenom='Baam'),
to_date('01/01/2018', 'dd/mm/yyyy')
),
T_SET_Message(
'Paris candidat aux jeux Olympiques 2022',
to_date('01/06/2019', 'dd/mm/yyyy'),
T_SET_Tag('JM2022')
)
);
полученное сообщение об ошибке
1 строка создана.
'Paris candidat aux jeux Olympiques 2022', *
ОШИБКА в строке 10:
ORA-00932: несовместимые типы данных: ожидаемый UDT получил CHAR
Я был бы рад, если кто-нибудь может мне помочь, спасибо.