plsql - Oracle named parameters -
how can use keywords oracle named parameters syntax ? following gives me 'ora-00936: missing expression' because of 'number'-argument:
select b.g3e_fid , a.g3e_fid , sdo_nn_distance( 1) acn a, b$gc_fitface_s b mdsys.sdo_nn ( geometry1 => a.g3e_geometry, geometry2 => b.g3e_geometry, param => 'sdo_num_res=1', number=>1) = 'true' , b.g3e_fid = 57798799;
if run without named parameters fine.
thanks, steef
although can around reserved word issue in call enclosing name in double quotes @avrajitroy suggested, i.e. ... "number"=>1) = 'true'...
, aren't achieving much. oracle letting refer parameters name isn't doing information.
mdsys.sdo_nn
spatial operator, not direct call function. there function backing - can see schema scripts mdsys it's calling prtv_idx.nn
- names of formal parameters of function not relevant. digging can see called geom
, geom2
, mask
etc., , there isn't 1 called number
(and can't have formal parameter called number
, quoting it, far can tell).
the formal parameters operator not named, , passed through positionally. can't skip argument naming others, can function/procedure arguments have default values.
so means can call parameters want in call; changing names of first 3 parameters in call random won't stop working.
it means naming them in call bit pointless, if you're trying document call can use other meaningful name rather 'number' if don't want quote it.
Comments
Post a Comment