powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / myibatis & sql developer
7 сообщений из 7, страница 1 из 1
myibatis & sql developer
    #37863214
testjava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sql developer отрабатывает запрос правильно. айбатис тот же запрос отрабатывает криво, как будто не возвращает значения таблицы. может такое быть? запрос в айбатис и мапинг проверил раз сто.
...
Рейтинг: 0 / 0
myibatis & sql developer
    #37863226
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приведите исходный запрос и маппинг, что возвращается. Проверьте, что соединяетесь с одной БД.
...
Рейтинг: 0 / 0
myibatis & sql developer
    #37863266
testjava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
<resultMap id="EmployeeTrainingsChangesResultMap" type="employee.EmployeeTrainingChange">


        <result property="status" column="training_status"/>
        <result property="oldValue.employeeId" column="employee_id"/>
        <result property="newValue.employeeId" column="employee_id"/>

        <result property="oldValue.trainingId" column="training_id"/>
        <result property="newValue.trainingId" column="training_id"/>


        <result property="oldValue.trainingName" column="old_training_name"/>
        <result property="oldValue.trainingUrl" column="old_training_url"/>
        <result property="oldValue.trainingDate" column="old_training_date"/>

        <result property="newValue.trainingName" column="training_name"/>
        <result property="newValue.trainingUrl" column="training_url"/>
        <result property="newValue.trainingDate" column="training_date"/>

    </resultMap>


    <select id="getEmployeeTrainingsChanges" parameterType="java.math.BigDecimal" resultMap="EmployeeTrainingsChangesResultMap">
       with training_lag_history as
(
    select sla.audit_id,
           sla.lag_time,
           /*training*/
           (
           case
             when length(max(decode(tr.trail_item_id,700000030041,tr.column_data)))=4 then
                trunc(to_date(max(decode(tr.trail_item_id,700000030041,tr.column_data)),'yyyy'),'yyyy')
             else to_date(max(decode(tr.trail_item_id,700000030041,tr.column_data)),'yyyy-mm-dd') 
           end
           ) old_training_year,           
           max(decode(tr.trail_item_id,700000030042,tr.column_data)) old_training_name,
           max(decode(tr.trail_item_id,700000030043,tr.column_data)) old_training_url,
           to_number(max(decode(tr.trail_item_id,700000030044,tr.column_data))) training_id,
           to_number(max(decode(tr.trail_item_id,700000030045,tr.column_data))) old_trainer_id,
           
           max(decode(tr.trail_item_id,700000030041,1,0)) is_training_year,
           max(decode(tr.trail_item_id,700000030042,1,0)) is_training_name,
           max(decode(tr.trail_item_id,700000030043,1,0)) is_training_url,
           max(decode(tr.trail_item_id,700000030045,1,0)) is_trainer_id           
           
    from
    (
        select
           audit_id,
           timestamp lag_time
        from
        (  
          select
               au.audit_id,
               au.timestamp,
               max(au.timestamp) over (partition by tr.trail_item_id,tr.column_data) max_over_item
            from r_audit au
            inner join r_audit_trail tr on tr.audit_id=au.audit_id   
            where au.item_id=#{value, jdbcType=NUMERIC} 
            and  au.timestamp &lt;= (select sys_extract_utc(cast(em.approved_date as timestamp)) from m_employee em where em.employee_id=#{value, jdbcType=NUMERIC})
            and tr.trail_item_id in (/*training*/700000030044)
         )
         where timestamp=max_over_item
     ) sla
     inner join r_audit_trail tr on tr.audit_id=sla.audit_id  
           and  tr.trail_item_id  in (
                                      /*training*/700000030041,700000030042,700000030043,700000030044,700000030045
                                     )
     group by sla.audit_id,sla.lag_time
)
select
    coalesce(met.training_id,tlh.training_id) training_id,
    (
    case
        when met.training_id is null then 'D'                                      -- deleted
        when tlh.training_id is null then 'N'                                      -- new
        when 
             (
                   (tlh.is_training_year &lt;&gt; 0 and
                     ((met.is_auto='N' and trunc(nvl(tlh.old_training_year,sysdate),'YYYY') &lt;&gt; trunc(nvl(met.training_date,sysdate),'YYYY'))
                       or (met.is_auto='Y' and nvl(tlh.old_training_year,sysdate) &lt;&gt; nvl(met.training_date,sysdate))
                     )
                   )             
                or (tlh.is_training_name &lt;&gt; 0 and nvl(tlh.old_training_name,'-') &lt;&gt; nvl(met.training_name,'-'))
                or (tlh.is_training_url &lt;&gt; 0 and nvl(tlh.old_training_url,'-') &lt;&gt; nvl(met.training_url,'-'))
                or (tlh.is_trainer_id &lt;&gt; 0 and nvl(tlh.old_trainer_id,0) &lt;&gt; nvl(met.trainer_id,0))          
             )
        then 'M'                                                                -- modified
        else 'E'                                                                -- equal
    end
    ) training_status ,
    decode(tlh.is_training_year,0,met.training_date,tlh.old_training_year) old_training_date,
    decode(tlh.is_training_name,0,met.training_name,tlh.old_training_name) old_training_name,
    decode(tlh.is_training_url,0,met.training_url,tlh.old_training_url) old_training_url,
    decode(tlh.is_trainer_id,0,met.trainer_id,tlh.old_trainer_id) old_trainer_id,
    met.training_date,
    met.training_name,
    met.training_url,
    met.trainer_id   
from training_lag_history tlh
right join (select * from m_employee_training where employee_id=#{value, jdbcType=NUMERIC} and is_auto = 'N') met on met.training_id=tlh.training_id
    </select>

Leonidv, поля с "old" приходят такие же как и без "old".
...
Рейтинг: 0 / 0
myibatis & sql developer
    #37863313
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
testjava,

Проверьте, совпадают ли nls-настройки сессий SQL Developer и батиса.
...
Рейтинг: 0 / 0
myibatis & sql developer
    #37863347
testjava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AmKad, подскажите, как посмотреть эти настройки у батиса, плиз!
...
Рейтинг: 0 / 0
myibatis & sql developer
    #37863683
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
testjavaAmKad, подскажите, как посмотреть эти настройки у батиса, плиз!
http://www.mybatis.org/core/configuration.html
...
Рейтинг: 0 / 0
myibatis & sql developer
    #37867311
testjava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonidv,проблема в SESSIONTIMEZONE, которую батис передает в запрос и которое sys_extract_utc использует. и получается неверная выборка из таблиц. у sql developer это значение верное. как поменять это значение для батиса, не могу найти.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / myibatis & sql developer
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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