该语句仅支持使用 SQL_TEXT 创建的 Outline,可用于添加绑定 Outline 和限流规则。

 
ALTER OUTLINE outline_name ADD stmt [ TO target_stmt ]
| 
 参数  | 
 描述  | 
|---|---|
outline_name  | 指定要创建的 Outline 名称。  | 
stmt  | 一般为一个带有 Hint 和原始参数的 DML 语句。  | 
TO target_stmt  | 如果不指定  注意 在使用   | 
 
obclient>CREATE OUTLINE ol_1 ON SELECT /*+max_concurrent(1)*/ * FROM t1 WHERE c1 =1 
           AND c2 = 1;
obclient>ALTER OUTLINE ol_1 ADD SELECT /*+max_concurrent(1)*/ * FROM t1 WHERE c1 =1 
           AND c2 = ?;
obclient>ALTER OUTLINE ol_1 ADD SELECT /*+max_concurrent(1)*/ * FROM t1 WHERE c1 =? 
           AND c2 = 1;
 
obclient>CREATE OUTLINE ol_2 ON SELECT /*+max_concurrent(1)*/ * FROM t1,t2 
          WHERE t1.c1 = 1;
obclient>ALTER OUTLINE ol_2 ADD SELECT /*+use_nl(t2)*/ * FROM t1,t2 
          WHERE t1.c1 = 1;
outline_name 只能指定一个执行计划。如果通过 CREATE OUTLINE 语句指定了执行计划,则无法通过执行 ALTER OUTLINE 时再添加。CREATE OUTLINE 类似,在 ALTER OUTLINE 时不能同时指定限流规则和执行计划。ALTER OUTLINE 时,需要 outline_name 和 signature 同时匹配。