приведение типов

Nomad87
Дата: 20.11.2009 07:54:25
доброго всем времени суток, подскажите. база данных - oracle.
из нее беру данные и формирую таблицу, одно поле именуется - трудозатраты .. там число я так полагаю с плавающей точкой, как ее привести в формат времени чтобы формат был "37:30:55"
иначе мне выдается ошибка: текстовое поле использует параметр области, недопустимый для статической функции. значением параметра области должна быть строковая константа , равная имени объемлющей группы, или имени объемлющей области данных, или имени надора данных...
DENIS_PR
Дата: 20.11.2009 08:21:46
Время - деньги, деньги - время
Babe_Vampire
Дата: 20.11.2009 10:22:35
автор
база данных - oracle.
из нее беру данные и формирую таблицу,

Куда берёте и каким образом?

автор
одно поле именуется - трудозатраты .. там число я так полагаю с плавающей точкой, как ее привести в формат времени чтобы формат был "37:30:55"

Какого типа поле в таблице на стороне БД посмотреть нет возможности?

автор
иначе мне выдается ошибка: текстовое поле использует параметр области, недопустимый для статической функции. значением параметра области должна быть строковая константа , равная имени объемлющей группы, или имени объемлющей области данных, или имени надора данных

Кем выдаётся? Дворником с улицы? Без какого либо кода ошибки и указания источника?

RTFM
Nomad87
Дата: 20.11.2009 10:49:47
2 Babe_Vampire
1 - я делаю отчет в SQL Server Business Intelligence Development Studio, там есть сервер отчетов.
каким образом - сначала я в Oracle SQL Develper делаю запрос типа:

SELECT T1.wor_id AS id
,T4.wcf_workorderdate4 + 4.0/24 AS время_регистрации
,T71.per_name AS исполнитель_имя
,T72.wog_name AS раб_группа_имя
,T45.rct_name AS базовая_ит_услуга
,T4.wcf_duration1 AS трудозатраты
,T26.rct_name AS статус
,T67.wog_name AS от_раб_группы_имя
,T1.wor_description AS краткое_описание
,T14.rct_name AS папка
FROM
sduser.itsm_wor_custom_fields T4
,sduser.itsm_workgroups T72
,sduser.itsm_persons T71
,sduser.rep_codes T25
,sduser.rep_codes_text T26
,sduser.rep_codes T13
,sduser.rep_codes_text T14
,sduser.itsm_wor_cft001 T43
,sduser.rep_codes T44
,sduser.itsm_workgroups T67
,sduser.rep_codes_text T45
,sduser.itsm_workorders T1
WHERE
(T4.wcf_wor_oid (+) = T1.wor_oid)
AND (T71.per_oid (+) = T1.ass_per_to_oid)
AND (T72.wog_oid (+) = T1.ass_workgroup)
AND (T25.rcd_oid = T1.wor_sta_oid)
AND (T26.rct_lng_oid = 1049)
AND (T26.rct_rcd_oid = T25.rcd_oid)
AND (T13.rcd_oid (+) = T1.wor_poo_oid)
AND (T14.rct_lng_oid (+) = 1049)
AND (T14.rct_rcd_oid (+) = T13.rcd_oid)
AND (T43.ITSM_WOR_CFT001_oid (+) = T1.wor_oid)
AND (T44.rcd_oid (+) = T43.A2$_BASEITSERVICE_OID)
AND (T45.rct_lng_oid (+) = 1049)
AND (T45.rct_rcd_oid (+) = T44.rcd_oid)
AND (T67.wog_oid (+) = T1.ass_wog_from_oid)
and (T4.wcf_workorderdate4 + 4.0/24 between trunc(sysdate-3) and trunc(sysdate-1/24/60/60))

вот и тут есть поле трудозатраты. когда я исполняю запрос в Oracle SQL - он отрабатывает, а в SQL Server Business Intelligence Development Studio,на закладке просмотра отчета выдается отшибка, которую я описал. кода ошибки нет.
Nomad87
Дата: 20.11.2009 10:53:29
тип поля поглядел - float
Babe_Vampire
Дата: 20.11.2009 10:58:40
Babe_Vampire

[quot автор]одно поле именуется - трудозатраты .. там число я так полагаю с плавающей точкой, как ее привести в формат времени чтобы формат был "37:30:55"

Какого типа поле в таблице на стороне БД посмотреть нет возможности?

Тип поля укажите

[quote автор]на закладке просмотра отчета

А на layout никаких преобразований с этим полем не указывали? Там проверяется только синтаксис выражения, но не его работоспособность.
На вкладке data поле нормально отображается при выполнении запроса?
Babe_Vampire
Дата: 20.11.2009 11:00:18
Nomad87
тип поля поглядел - float


Тогда преобразуйте его в нужный вам вид в запросе, а не на стороне MS BI DS.
Babe_Vampire
Дата: 20.11.2009 11:06:07
sysdate + interval table.field day
----
Oracle 11.1.0.7 - 64bit - SLES10
Nomad87
Дата: 20.11.2009 11:48:52
просто не оч понимаю как число 0,04166666666667 превратить там например 40:00:00
какая то конструкция может есть которую прямо в select можно вставить типа
to_time (T4.wcf_duration1) ?
Elic
Дата: 20.11.2009 12:19:11
Nomad87
просто не оч понимаю как число 0,04166666666667 превратить там например 40:00:00
Интересная арифметика: 40 часов / 0,04166666666667 = 960 часов в хер_знает_чём