" in the view? I received a select statement (no syntax errors and retur...">

Is it possible to use a function that takes parameters using the syntax "=>" in the view?

I received a select statement (no syntax errors and return the desired results), but I get an error when I try to use the same select statement in the view. I suppose this has something to do with "=>" to name the options.

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 

I simplified the statement to use only double so that it is easier to reproduce. I have a table with linear geometries that I am going to use instead of "SELECT ... FROM DUAL" and a way to deduce a point from the line used for psc1.

The error that occurs when using the sqldeveloper test syntax is

 Error(s) parsing SQL: Unexpected token at 45 near =>. 

The first line "=>" contains 45 characters per line, so I see there is something invalid in its use in the creation view.

I'm sure I can get around this by creating a function that does not use this "=>" syntax, but hoped that there was a way to call this oracle function directly from the create view.

Edit: Thus, it seems sqldeveloper / sqlplus supports something like named parameters. I added comments around named parameters (/ * named_param => * /) to stop using the named parameter syntax. Now this is just a "wrong number or type of argument" error. Unfortunately, I set all the parameters in the exact order, as shown in the online Oracle docs (from http://docs.oracle.com/cd/B28359_01/appdev.111/b28400/sdo_util.htm#BJEGCCDF ). So I think this becomes a question on how to find the correct order for the arguments of my function.

+4
source share
1 answer

Yes you can, but only with Oracle 11G. Prior to this, only a positional designation was allowed in any SQL statement, which included definition definitions.

+5
source

Source: https://habr.com/ru/post/1386200/


All Articles