Опциональное ключевое слово Oracle - PullRequest
0 голосов
/ 15 февраля 2010

Я хотел бы спросить, знает ли кто-нибудь, как использовать ключевое слово OPTION.

Я столкнулся с этим в старом исходном коде C, который я читал.

OPTION SELECT ROWID
FROM TABLE_1
WHERE PRODUCT_CODE = ANY(SELECT PRODUCT_CODE FROM PRODUCT_TABLE WHERE PRODUCT_GROUP='value a')
FOR UPDATE NOWAIT;
SELECT ROWID
FROM TABLE_2
WHERE PRODUCT_CODE = 'value b'
FOR UPDATE NOWAIT;
UPDATE TABLE_3
SET ...
WHERE PRODUCT_CD = 'value b'

* Обновлен запрос на основе первого комментария. В основном, C-код сделал SQL-оператор с 3 SQL-оператором. Тогда получил результат от этого. Мне было интересно, что бы возвратил оракул, если вы сделаете два заявления. Какой результат оператора select будет возвращен? или он просто вернет второй, потому что первый был указан с ключевым словом OPTION?

Ответы [ 3 ]

2 голосов
/ 15 февраля 2010

Книга "Oracle Database SQL Language Reference" содержит ключевое слово "OPTION". http://download.oracle.com/docs/cd/B28359_01/network.111/b28531/authorization.htm#sthref821

2 голосов
/ 15 февраля 2010

Как ключевое слово Oracle, которое, кажется, не имеет смысла там. Если это файл Pro * C, существует ли где-нибудь определенный макрос, который устанавливает OPTION на что-то вроде exec sql, или, если это похоже на то, что это может быть курсор, exec sql declare something cursor for? Хотя в последнем случае имя курсора фиксируется на something, поэтому вы можете использовать его только один раз для каждого файла; возможно, это сокращение от объявления курсора с именем option ...

Было бы полезно увидеть больше кода вокруг этого.

2 голосов
/ 15 февраля 2010

Можете ли вы опубликовать больше своего кода? OPTION является зарезервированным словом, поэтому его нельзя переопределить.

Обычно используется для таких операций, как:

GRANT CREATE INDEX TO user WITH ADMIN OPTION;
...