Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
Теоретические аспекты и практические реализации создания, внедрения и использования баз данных, СУБД, хранилищ.
  • Страница:
  • 1
  • 2
  • 3

ТЕМА: ORA-32607 invalid ITERATE value in MODEL clause

ORA-32607 invalid ITERATE value in MODEL clause 04 июль 2011 02:20 #959

  • Vova
  • Vova аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 40
  • Спасибо получено: 0
Пробую нагенерить строк в подгруппах:
SELECT gid,val FROM (
SELECT 5000111 gid, 11 pol_cnt,1 it FROM DUAL UNION ALL
SELECT 5000115,16,1 FROM DUAL UNION ALL
SELECT 5000116,8,1 FROM DUAL
)
MODEL
PARTITION BY (gid)
DIMENSION BY (0 AS rn)
MEASURES (0 AS val)
RULES ITERATE (CAST (pol_cnt AS INTEGER))
( val[iteration_number] = iteration_number+1 );
Но не получается:
ORA-32607

32607, 00000, "invalid ITERATE value in MODEL clause"
// *Cause: The specified ITERATE value must be a 4 byte positive integer.
// *Action: Choose an appropriate value and retry the operation.

Никак не пойму, в чем соль, получается, что нельзя в RULES ITERATE для разных partition разное количество записей указывать?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: ORA-32607 invalid ITERATE value in MODEL clause 04 июль 2011 02:25 #960

  • Bubu
  • Bubu аватар
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 72
  • Спасибо получено: 0
download.oracle.com/docs/cd/E11882_01/server.112/e17118/statements_10002.htm#CHDJAAEF
Читай документацию,
Разницу между number и expr понимаешь?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: ORA-32607 invalid ITERATE value in MODEL clause 04 июль 2011 02:26 #961

  • Vova
  • Vova аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 40
  • Спасибо получено: 0

Bubu пишет: download.oracle.com/docs/cd/E11882_01/server.112/e17118/statements_10002.htm#CHDJAAEF
Читай документацию,
Разницу между number и expr понимаешь?

Ааа...... я тупанул, спасибо!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: ORA-32607 invalid ITERATE value in MODEL clause 04 июль 2011 02:27 #962

  • Bubu
  • Bubu аватар
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 72
  • Спасибо получено: 0
Обращайся

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: ORA-32607 invalid ITERATE value in MODEL clause 04 июль 2011 02:28 #963

  • Vova
  • Vova аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 40
  • Спасибо получено: 0
А по другому можно было сделать? работает но медленно.
Оно ищет мультиполигоны с дырками, которые почему-то даны как простые полигоны без дырок
WITH geolocs AS (SELECT gid
,CASE WHEN WKB_GEOMETRY IS NOT NULL THEN SDO_UTIL.FROM_WKBGEOMETRY(WKB_GEOMETRY)
WHEN WKB_GEOMETRY IS NULL THEN NULL
END geoloc
FROM pods.srv_district_g
/*where gid=5000111 or gid = 5000115 or gid = 5000116 */),
polygons_cnt AS (SELECT gid,count(*)/3 pol_cnt
FROM geolocs a
CROSS JOIN TABLE(a.geoloc.sdo_elem_info) z
WHERE a.geoloc.sdo_gtype = 2003
GROUP BY gid),
polygons_to_check AS ( SELECT *
FROM polygons_cnt
WHERE pol_cnt > 1),
pre_iterator AS (SELECT gid
,pol_cnt
,row_number() OVER (PARTITION BY GID ORDER BY GID) iterator
FROM polygons_to_check
CONNECT BY level <= 5),
iterator AS (SELECT gid,iterator
FROM pre_iterator
WHERE iterator <= pol_cnt),
polygons1 AS (SELECT g.gid
,iterator polygon_id
,SDO_UTIL.EXTRACT(geoloc,1,iterator) polygon
FROM iterator i
JOIN geolocs g
ON i.gid = g.gid),
polygons2 AS (SELECT g.gid /* lol ORA-32036 */
,iterator polygon_id
,SDO_UTIL.EXTRACT(geoloc,1,iterator) polygon
FROM iterator i
JOIN geolocs g
ON i.gid = g.gid)
SELECT p1.gid,p1.polygon_id,p2.polygon_id
FROM polygons1 p1
JOIN polygons2 p2
ON p1.gid = p2.gid
WHERE p1.polygon_id != p2.polygon_id
AND SDO_GEOM.RELATE(p1.polygon,'DETERMINE',p2.polygon,5e-7) = 'CONTAINS' ;

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от Vova.

Re: ORA-32607 invalid ITERATE value in MODEL clause 04 июль 2011 02:31 #964

Vova пишет: А по другому можно было сделать?

Конечно можно

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • Страница:
  • 1
  • 2
  • 3