官方文档里的解释:
SIGNATURE RAW(16) Signature uniquely identifying theoutline SQL text
在11.2.0.4及10.2.0.5里测试,该signature是忽略sql的大小写及每个单词之间多余的空格。
(测试方式如下:
SQL> alter session set create_stored_outlines =test;
SQL> select * from DEPT;
Sql>select * from dept;
其实只生成了一个对应select * from DEPT语句的outline。
Select name,signature from user_outlines where category=’TEST’;
以下Oracle 文档里也解释,v$sql和dba_oulines里面也没有将两个view相互连接起来的栏位。
How To Match a SQL Statement to a Stored Outline (文档 ID 743312.1)
OUTLINE其实是存于表outline.ol$,上面有两个unique key,分别是 (name)及(signature,category)从这里可以看出一个category里面对于同一句sql只能有一个outline。
可以使用sys.outln_edit_pkg.generate_signature(l_sql_text,l_sql_sig);生成signature