Zmienne wiązania służą do wiązania zmiennych, a nie do wiązania fragmentów kodu. Pomysł polega na tym, że Oracle może skompilować i buforować zapytanie lub blok kodu i wykonać je kilka razy z różnymi parametrami.
Jednak próbujesz użyć powiązania parametrów do zastąpienia obliczonej formuły. Uniemożliwiłoby to kompilację i buforowanie bloku kodu i dlatego nie jest obsługiwane.
Ponadto nie można go wyrazić przy użyciu bieżącej składni. Jeśli Oracle widzi tmp := :f
myśli, że po prostu chcesz przypisać parametr f
do zmiennej tmp
. Nie wymaga oceny funkcji.
Po prostu wybierz działające rozwiązanie. W końcu to działa.