Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Ошибка при insert'е дат во временную таблицу(ORA-00932) / 12 сообщений из 12, страница 1 из 1
14.10.2016, 11:06
    #39326877
Reflector
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при insert'е дат во временную таблицу(ORA-00932)
Доброго времени суток.
Вопрос в следующем. Есть некоторые даты, из которых необходимо посчитать длительность в часах.
Код: sql
1.
2.
3.
 bi2.open_date as "Дата начала",
       bi2.close_date as "Дата окончания", 
       round((trunc(bi2.close_date, 'mi')-trunc(bi2.open_date, 'mi'))*24,1) as "Длительность, ч."]


После чего возникает ошибка ORA-00932. Текст ошибки понятен, да и код рабочий. Не понятно, почему вдруг ругань приходит на "ожидание number, получено Timestamp with local time zone". Прошу сильно не ругаться, sql занимаюсь недавно и тонкостей особых не знаю. Заранее всем спасибо.

Модератор: Тема перенесена из форума "MySQL".
...
Рейтинг: 0 / 0
14.10.2016, 11:15
    #39326887
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при insert'е дат во временную таблицу(ORA-00932)
ReflectorЕсть некоторые датыТип данных этих "дат"?
...
Рейтинг: 0 / 0
14.10.2016, 11:18
    #39326895
Reflector
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при insert'е дат во временную таблицу(ORA-00932)
Elic, данные типа "Timestamp with local time zone"
...
Рейтинг: 0 / 0
14.10.2016, 11:27
    #39326901
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при insert'е дат во временную таблицу(ORA-00932)
Ты чего-то недоговариваешь. В этом куске не должно быть ошибки:
Код: plsql
1.
2.
3.
4.
5.
SQL> select round((trunc(systimestamp)-trunc(systimestamp))*12,1) from dual;

ROUND((TRUNC(SYSTIMESTAMP)-TRUNC(SYSTIMESTAMP))*12,1)
-----------------------------------------------------
                                                    0
...
Рейтинг: 0 / 0
14.10.2016, 11:29
    #39326903
Reflector
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при insert'е дат во временную таблицу(ORA-00932)
Elic, у меня в select тоже ошибки нету.
А при попытке insert'а в другую таблицу выходит ORA-00932. В том то и вопрос, откуда она появляется?
...
Рейтинг: 0 / 0
14.10.2016, 11:32
    #39326907
Reflector
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при insert'е дат во временную таблицу(ORA-00932)
Elic,
Код: plsql
1.
insert into table


где те же поля типа Timestamp with local time zone and number соответственно.
...
Рейтинг: 0 / 0
14.10.2016, 11:32
    #39326908
K790
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при insert'е дат во временную таблицу(ORA-00932)
Reflector,

типы данных source и target таблиц совпадают?
...
Рейтинг: 0 / 0
14.10.2016, 11:34
    #39326911
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при insert'е дат во временную таблицу(ORA-00932)
Reflector
Код: plsql
1.
insert into table

где те же поля типа Timestamp with local time zone and number соответственно.Не стесьняйся показать весь говнокод.
...
Рейтинг: 0 / 0
14.10.2016, 11:37
    #39326913
Reflector
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при insert'е дат во временную таблицу(ORA-00932)
K790,

ReflectorElic,
где те же поля типа Timestamp with local time zone and number соответственно.
Безусловно, раза 4 проверил, сменил, и снова пробовал.
...
Рейтинг: 0 / 0
14.10.2016, 11:41
    #39326919
Reflector
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при insert'е дат во временную таблицу(ORA-00932)
Elic,
Если честно, не очень понимаю, как можно показать тип полей. Во view table тип "Дата начала", "Дата окончания"-Timestamp with local time zone, "Длительность"-number.
Код insert
Код: plsql
1.
2.
3.
4.
5.
insert into temp.t1
select bi2.open_date as "Дата начала",
       bi2.close_date as "Дата окончания", 
       round((trunc(bi2.close_date, 'mi')-trunc(bi2.open_date, 'mi'))*24,1) as "Длительность, ч."
from business bi2
...
Рейтинг: 0 / 0
14.10.2016, 12:26
    #39326964
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при insert'е дат во временную таблицу(ORA-00932)
Reflector
Код: plsql
1.
insert into temp.t1

1) В Oracle-е не принято злоупотреблять временными таблицами.
2) Указывай перечень столбцов явно, раз уж ты не знаешь, в каком же они порядке в таблице, а ты не в состоянии это понять/запомнить.
...
Рейтинг: 0 / 0
14.10.2016, 13:05
    #39327014
Reflector
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при insert'е дат во временную таблицу(ORA-00932)
Elic,
1) К сожалению, админы их используют, поэтому я-заложник данной ситуации, у которого даже прав на создание таблицы нету.
2) Спасибо Вам большое! Действительно кто-то добавил столбец во временную таблицу, это ускользнуло от меня!
Все заработало, insert готов))))
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Ошибка при insert'е дат во временную таблицу(ORA-00932) / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]