Получить геометрические кординаты из таблицы Oracle

0

Привет, мне нужно получить геометрические координаты из моей таблицы Oracle. В настоящее время я использую

 (select column_value 
    from (
           select rownum r, 
                  b.* 
            from table(
                       select h.geometry.sdo_ordinates 
                        from hz_locations h 
                       where location_id =
                             (select location_id 
                                from csf_ct_tasks 
                               where task_id = p_task_id)
                       ) b
          )    -- location_id = 973,  task_id = 36420   

   where r =1) as latitude,


  (select column_value 
     from (
           select rownum r, 
                  b.* 
             from table(
                        select h.geometry.sdo_ordinates 
                          from hz_locations h 
                         where location_id =  
                               (select location_id 
                                  from csf_ct_tasks 
                                 where task_id = p_task_id)
                         ) b
            ) 

   where r =2) as longitude

Здесь p_task_id используется для получения определенной широты, долготы задачи. Но мне нужно получить список широты, долготы одного пользователя, указав идентификатор пользователя во внешнем запросе. Можно ли переписать мой запрос.

Мой фактический оператор select

SELECT all h.location_id,
       h.address1,
       h.address2,
       h.address3,
       h.address4,
       h.house_number,
       h.street_suffix,
       h.apartment_number,
       h.street,
       h.po_box_number,
       h.city,
       h.state,
       h.province,
       h.county,
       h.country,
       h.postal_code as customer_address
  from hz_locations h,
       csf_ct_tasks ct 
 where h.location_id = ct.location_id 
   and ct.owner_id = 10180

Заранее спасибо.

! [Пример ответа хранилища широты и долготы в таблице] [2]

Изображение 174551

Теги:
plsql
erp

1 ответ

1
Лучший ответ

Попробуй это

WITH DATASET
    AS (SELECT
             CT.OWNER_ID OWNER_ID,
             ROWNUM R,
             H.GEOMETRY.SDO_ORDINATES VALUE
        FROM
             HZ_LOCATIONS H,
             CSF_CT_TASKS CT
        WHERE
             H.LOCATION_ID = CT.LOCATION_ID
             AND CT.OWNER_ID = 10180)
SELECT
      OWNER_ID,
      REGEXP_REPLACE ( VALUE,
                    '^([^,]*).*$',
                    '\1' )
          AS LAT,
      REGEXP_REPLACE ( VALUE,
                    '^[^,]*,|([^,]*).*$',
                    '\1' )
          AS LON
FROM
      DATASET
WHERE
      ROWNUM = 1;
  • 0
    Но когда я обновляю запрос, я получаю сообщение об ошибке "CT". "OWNER_ID": неверный идентификатор
  • 0
    Изменено .. Пожалуйста, повторите
Показать ещё 28 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню