Oracle mechanics

04.12.2009

Oracle < 11g: имена параметров PL/SQL (named notation) и ORA-00907

Filed under: Oracle,Oracle new features — Игорь Усольцев @ 13:24
Tags:

В стародавние времена, до версии Oracle 11g при попытке использования имён параметров (named notation) PL/SQL объектов из SQL-интерфейса, получали ORA-907 — «потому что нельзя использовать имена параметров (plsql’изм) в SQL«. Можно было использовать только стандартное позиционное указание параметров (standard positional notation):

Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
SQL> SELECT * FROM TABLE(pkg1.f1(5));
COLUMN_VALUE
------------
 ...
SQL> SELECT * FROM TABLE(pkg1.f1(x => 5));
SELECT * FROM TABLE(pkg1.f1(x => 5))
 *
ERROR at line 1:
ORA-00907: missing right parenthesis

В Oracle 11g допустимо использовать, наряду с позиционным, указание параметров PL/SQL по имени (named notation) и смешанное перечисление параметров (mixed notation) — сначала параметры перечисляются по позиции, затем указываются по имени:

Connected to:
Oracle Database 11g Release 11.1.0.7.0 - 64bit Production
SQL> SELECT * FROM TABLE(pkg1.f1(5, 0));
 COLUMN_VALUE
 ------------
 ...
SQL> SELECT * FROM TABLE(pkg1.f1(x => 5, y=>0));
COLUMN_VALUE
------------
 ...
SQL> SELECT * FROM TABLE(pkg1.f1(5,y=>0));
COLUMN_VALUE
------------
 ...

Добавить комментарий »

Комментариев нет.

RSS feed for comments on this post. TrackBack URI

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

Создайте бесплатный сайт или блог на WordPress.com.

%d такие блоггеры, как: