Oracle создает таблицу как выбор с условием максимального количества - PullRequest
7 голосов
/ 28 апреля 2011

У меня проблема с Oracle, вот мой выбор:

create table new_table as 
select
idprod as product_id, descr as description
from old_table p where updateNum = (select max(updateNum) from old_table pp where pp.idprod = p.idprod);

этот запрос дает мне одну общую ошибку без объяснения причин. Разработчик SQL говорит мне:

"Ошибка запуска в строке 7 в команде: [...] Отчет об ошибке:
Команда SQL: создать таблицу
Ошибка: Предупреждение: выполнение завершено с предупреждением "

но создать таблицу, и данные внутри нее кажутся правильными.

Некоторые намеки?

Ответы [ 2 ]

7 голосов
/ 08 января 2013

Oracle выдает «Failed: Warning: выполнение завершено с предупреждением» в операторе CREATE TABLE всякий раз, когда вы используете функцию в столбце с NULL.Это часто происходит, когда вы используете CASE WHEN или DECODE и не используете значение по умолчанию, чтобы заботиться о NULL (например, ELSE 0).Это также решение той же проблемы, указанной в https://forums.oracle.com/forums/thread.jspa?threadID=723332.

Чтобы избежать проблем: убедитесь, что вы не используете функцию (например, max, sum) в столбце с NULL вСОЗДАТЬ ТАБЛИЦУ КАК.

5 голосов
/ 28 апреля 2011

В старых версиях SQL Developer есть ошибка, из-за которой они выдают похожее предупреждение после CREATE TABLE: см. это сообщение на форумах OTN .

Поскольку таблица создается и заполняетсяправильные данные, оператор CREATE TABLE правильный.Если вы хотите быть уверены, попробуйте выполнить инструкцию из SQL * Plus.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...