У меня работает оператор выбора (без синтаксических ошибок и возврата желаемых результатов), но я получаю ошибку, когда пытаюсь использовать тот же оператор выбора в представлении.Я полагаю, что это как-то связано с "=>" для именования параметров.
select SDO_UTIL.AFFINETRANSFORMS(
geometry => STRTS.GEOMETRY,
translation => 'FALSE', tx => 0.0, ty => 0.0, tz => 0.0,
scaling => 'TRUE', psc1 =>
MDSYS.SDO_GEOMETRY( 3001, NULL, SDO_POINT_TYPE( 0, 0, 0 ), NULL, NULL),
sx => 0.8, sy => 0.8, sz => 0.8,
rotation => 'FALSE', p1 => NULL,
line1 => NULL, angle => 10.0, dir => 2,
shearing => 'FALSE', shxy => 0.0,
shyx => 0.0, shxz => 0.0, shzx => 0.0, shyz => 0.0, shzy => 0.0,
reflection => 'FALSE', pref => NULL, lineR => NULL, dirR => 0,
planeR => 'FALSE', n => NULL, bigD => NULL ) AS GEOMETRY
FROM (
SELECT
MDSYS.SDO_GEOMETRY(3002, NULL, NULL,
SDO_ELEM_INFO_ARRAY(1, 2, 1),
SDO_ORDINATE_ARRAY(-90, 30, 0, -90, 30, 0))
as GEOMETRY
FROM DUAL ) STRTS
Я упростил утверждение, чтобы использовать только двойное, чтобы его было легче воспроизвести.У меня есть таблица с линейной геометрией, которую я собираюсь использовать вместо «SELECT ... FROM DUAL» и способ вывести точку из линии, чтобы использовать для psc1.
Ошибка, которую я получаю, когдаиспользование синтаксиса теста sqldeveloper:
Error(s) parsing SQL: Unexpected token at 45 near =>.
Первый "=>" - это 45 символов в строке, поэтому я считаю, что в представлении создания есть что-то недопустимое.
Я довольноКонечно, я могу обойти это, создав функцию, которая не использует этот синтаксис "=>", но надеялась, что есть способ вызвать эту функцию оракула прямо из представления создания.
Редактировать: Похоже, чтоsqldeveloper / sqlplus поддерживает что-то вроде именованных параметров.Я добавил комментарии вокруг именованных параметров (/ * named_param => * /), чтобы прекратить использовать синтаксис именованных параметров.Теперь это просто ошибка "неправильное число или тип аргументов".К сожалению, я поставил все параметры в точном порядке, как показано в онлайн-документации Oracle (от http://docs.oracle.com/cd/B28359_01/appdev.111/b28400/sdo_util.htm#BJEGCCDF).Поэтому я думаю, что это становится вопросом о том, как найти правильный порядок для аргументов моей функции.