需要查询库,故查询的是部署版本,而非在designer中的未部署版本。
省去了 transition太多,每次都需要在designer内打开transition面板操作的麻烦。
Stateflow的 transition 查询SQL ( 其中 fromstate或 tostate为空的应该是 any节点的 transition)
数据库 是oracle
select t.f_name,
dbms_lob.substr(l3.f_text) transition名称,
DBMS_LOB.substr(l.f_text)fromstate,
DBMS_LOB.substr(l2.f_text) tostate,
s.f_name 状态流,
b.f_valuetr_script ,
c.f_value field_script
fromudb.hs_transition t
leftjoin udb.hs_text_blob b
on t.f_tr_script_id = b.f_root_oid
leftjoin udb.hs_text_blob c
on t.f_field_script_id = c.f_root_oid
leftjoin udb.hs_stateflow s
on t.f_stateflow_id = s.hs_uuid
leftjoin udb.hs_locale l
onsubstr(l.f_item_id,0,36) = t.f_from_state_uuid
andl.f_locale_name ='zh_CN'
leftjoin udb.hs_locale l2
onsubstr(l2.f_item_id,0,36) = t.f_to_state_uuid
andl2.f_locale_name ='zh_CN'
leftjoin udb.hs_locale l3
onsubstr(l3.f_item_id,0,36) = t.hs_uuid
andl2.f_locale_name ='zh_CN'
wheres.f_name='STATEFLOWNAME' ------填上状态流的英文名称
orderby s.f_name, t.f_name;
结果可能有多余废弃的,但不多,可以找出来,但总体上是对的。