У меня нет большого опыта работы с базой данных, поэтому я прошу помощи в этой ситуации:
Этот оператор выбора здесь получает все документы, которых нет в таблице, которую я использую для сопоставления моих документов, которые собираются интегрировать в другие системы, это таблица сопоставления (TP_DOC_MAP). Поэтому я хочу создать в моей базе данных какой-нибудь автоматизм, чтобы X в X раз выполнял этот оператор и вставлял его в мою таблицу сопоставлений (TP_DOC_MAP).
Прямо сейчас это было сделано вручную. Я запускаю это утверждение, и я вставляю каждую запись вручную, и это, конечно, не имеет смысла.
(
SELECT DOM_DOCUMENT.DOMAIN_DOC,
TYPE_DOCS.TYPE_DOC_PK,
TYPE_DOCS.TIPO_DOCUMENTO,
TYPE_DOCS.USERCODE,
TYPE_DOCS.CODE_RESULT
FROM TYPE_DOCS
JOIN DOM_TDOC_SIS
ON TYPE_DOCS.TYPE_DOC_PK = DOM_TDOC_SIS.TYPE_DOC_PK
JOIN DOM_DOCUMENT
ON DOM_TDOC_SIS.DOMAIN_DOC_PK = DOM_DOCUMENT.DOMAIN_DOC_PK
WHERE DOM_DOCUMENT.DOMAIN_DOC_PK IN (2, 10) -- (QLD = | PRD = 2)
"motive docs" -- (QLD = 63 | PRD = 10) "Consent. docs"
AND NOT EXISTS
(
SELECT 1
FROM TP_DOC_MAP
WHERE TP_DOC_MAP.LS_LOCAL_PK = 8
AND TP_DOC_MAP.LS_SYSTEM_PK = 3 -- system type
AND TP_DOC_MAP.ACTIVE = 1 -- Mapping all the active
documents
AND TP_DOC_MAP.CODE = TYPE_DOCS.TYPE_DOC_PK --"not e
xists" junction
))
INSERT INTO TP_DOC(CODIGO, NAME, ACTIVE, CREATEDAT, UPDATEDAT) VALUES
('TPDOC_23', 'Report for intrusive function', 1, SYSDATE, NULL);
INSERT INTO TP_DOC_MAP (TP_DOCUMENT_PK, LS_LOCAL_PK, LS_SYSTEM_PK, CODE,
ACTIVE, CREATEDAT, UPDATEDAT) VALUES ((SELECT TP_DOCUMENT_PK FROM TP_DOC
WHERE CODE = 'TPDOC_23'), (SELECT LS_LOCAL_PK FROM LS_LOCAL WHERE CODE =
'IPE'), (SELECT LS_SYSTEM_PK FROM LS_SYSTEM WHERE CODIGO = 'MDS'), '21',
1, SYSDATE, NULL);
так что я хочу создать подпрограмму базы данных, чтобы сделать это автоматически.