#sql #oracle
#sql #Oracle
Вопрос:
Я пытаюсь вставить некоторые данные в таблицу с помощью операции минус. У меня есть моя таблица (SG_AN_KZ) и таблица stag, которую я использую для извлечения некоторых данных, чтобы сделать минус. Я также извлекаю данные из внутреннего соединения, чтобы выполнить операцию минус. Проблема в том, что запрос не работает, и я не могу понять причину. Здесь весь запрос:
INSERT INTO SG_AN_KZ (ID, CODE, TIPO_RECORD, SYSCREATEDATE, SYSCREATEUSER, SYSUPDATEDATE, SYSUPDATEUSER, FLAG_DELETED, ID_PN)
(SELECT (SELECT ROWNUM ID_KZ, CODE, TIPO_RECORD, systimestamp, 967, systimestamp, 967, 0, ID_PN) FROM
(SELECT Q1.CODE, Q1.TIPO_RECORD, systimestamp, 967, systimestamp, 967,0,Q2.ID
FROM
(SELECT DISTINCT S.CODE, S.TIPO_RECORD FROM STAG_SG_AN_KZ S
INNER JOIN SG_AN_PN P
ON P.CODE = S.CODE)Q1,
(SELECT DISTINCT P.ID FROM SG_AN_PN P
INNER JOIN STAG_SG_AN_KZ S
ON S.CODE = P.CODE) Q2,
STAG_SG_AN_KZ S
WHERE S.CODE = Q1.CODE)
MINUS
SELECT CODE, TIPO_RECORD, ID_PN from SG_AN_KZ;
Errore(118,2): PL/SQL: SQL Statement ignored
Errore(119,99): PL/SQL: ORA-00923: parola chiave FROM non trovata dove prevista
У тебя есть какие-нибудь идеи?
заранее благодарю вас.
Комментарии:
1. Ужасно неправильный запрос. Укажите, что вы хотите.. И укажите структуру таблицы.
2. У вас много вложенных запросов, которые, вероятно, вам действительно не нужны. Попробуйте разделить ваш запрос с помощью CTE, это прояснит структуру запроса и поможет вам понять проблему.
3. Начните с подсчета круглых скобок,, которые не сбалансированы; но также находятся в неправильных местах. Но вы можете переосмыслить и упростить…