0

我想问是否有人知道如何使用 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 代码用 3 条 sql 语句创建了一条 SQL 语句。然后从中得到了一个结果。我想知道如果你给出两个声明,oracle 会返回什么。它会返回哪个 select 语句结果?还是只返回第二个,因为第一个是用 OPTION 关键字指定的?

4

3 回答 3

2

您可以发布更多代码吗? OPTION是保留字,因此不能重新定义。

它通常用于以下操作:

GRANT CREATE INDEX TO user WITH ADMIN OPTION;
于 2010-02-15T09:57:57.943 回答
2

《Oracle 数据库 SQL 语言参考》一书中包含关键字“OPTION”。 http://download.oracle.com/docs/cd/B28359_01/network.111/b28531/authorization.htm#sthref821

于 2010-02-15T10:12:39.987 回答
2

作为一个似乎没有意义的 Oracle 关键字。如果这是一个 Pro*C 文件,是否在某处定义了一个宏,设置OPTION为类似exec sql,或者因为这看起来可能是一个光标,exec sql declare something cursor for?尽管后者会将光标名称固定为,something因此每个文件只能使用一次;也许这是声明一个名为option...的游标的简写。

不过,查看更多关于此的代码会有所帮助。

于 2010-02-15T10:26:46.483 回答