У меня есть следующие таблицы:
CREATE TABLE tbl_part_1
(
LOGID NUMBER
, TIMESTAMP DATE
, TASK VARCHAR2(200 CHAR)
, TERMINALIP VARCHAR2(256 CHAR)
)
CREATE TABLE tbl_part_2
(
LOGID NUMBER
, MREC_ID VARCHAR2(40 CHAR) NOT NULL
, SUBTASK VARCHAR2(200 CHAR)
, USER VARCHAR2(50 CHAR)
, TRANSACTIONID VARCHAR2(100 CHAR)
)
CREATE TABLE tbl_full_record
(
REC_ID VARCHAR2(32 CHAR) NOT NULL
, TMSTAMP DATE
, USER VARCHAR2(250 CHAR)
, META_RECORD VARCHAR2(2000 CHAR)
, DATA_RECORD CLOB
)
В столбце "META_RECORD" я получил XML:
<Meta_Record>
<TimeStamp>(DATE TIME HERE)</TimeStamp>
<User>(USER NAME HERE)</User> <!-- USER from tbl_part_2 -->
<TerminalIP>(USER IP HERE)</TerminalIP> <!-- TERMINALIP from tbl_part_1 -->
<Task>(USER TASK HERE)</Task> <!-- TASK from tbl_part_1 -->
<SubTask>(USER SUBTASK HERE)</SubTask> <!-- SUBTASK from tbl_part_2 -->
<MetaRecordID>(MREC_ID HERE)</MetaRecordID> <!-- MREC_ID from tbl_part_2 -->
<TransactionID>(TRANSACTIONID HERE)</TransactionID> <!-- TRANSACTIONID from tbl_part_2 -->
</Meta_Record>
Таблица "tbl_full_record" содержит те же данные, что и "tbl_part_1" и "tbl_part_2".
Но в настоящее время я скучаю по одному в строке в "tbl_full_record" (или получил слишком много в "tbl_part_1" с "tbl_part_2").
Примечание: есть несколько «tbl_full_record» (по одному на каждый месяц года), но только один раз «tbl_part_1 + 2»
Сопоставление должно быть сделано через поле «META_RECORD» в «tbl_full_record»
Я хотел бы знать, как я узнаю, что такое пропущенная / слишком большая строка?
Как бы мне настроить запрос, чтобы получить это, что также является производительным, если предположить, что "tbl_part_1 + 2" имеет около 20.000.000 строк, а "tbl_full_record" - 1.500.000?