理由は良くわからないが CALL(〜) 特有の問題で
number を戻すファンクション f と SQL*Plus 上の バインド変数 var n number に対して
SQL> call f(1) into :n; を実行すると、バインドされていない旨のエラーが発生した。(Oracle 10.2.0.1.0)
対応
プレースホルダ名との相性?
SQL> call f(1) into :n ; のようにセミコロンの前にスペースを設置すると問題なく実行された。
:n; で1ワードになってしまっているようである。SQL*Plus 上の 予約語 に思い当たるものはない…
この問題は n 以外の変数名では発生しないようであるが SQL*Plus でのバインド変数名は1文字や予約語に似た文字にしない方が良いだろう。