exist 比in效率高点 可以简单的遍历每个表 SELECT count(*) into number FROM ALL_TAB_COLS where 条件; 如果number <> 0 则是成立。。
有什么更好的方法吗? distinct 和 in 有什么方法可以将其替换掉,提高效率?你只有固定的两个值 用in的效率应该比较好
这个function的功能可以用一条sql 语句实现吗?想了很久,没想出来,请指点,谢谢。
select DISTINCT allsyno.table_name,allsyno.table_owner, allsyno.synonym_name from all_tab_cols atc, all_synonyms allsyno where atc.table_name = allsyno.table_name and atc.owner = allsyno.table_owner and exists ( select 1 from all_tab_cols where atc.column_name = all_tab_cols.column_name and atc.column_name = 'DEL_FLG' or atc.column_name = 'ENTITY_CRE_FLG' ) 改成in 的如上,虽然没有的到想要的答案,不过还是要感谢四楼的,明早结贴。
2,用捕获异常后在变量赋指定值好还是 select count(*) 然后再更具记录条数 来给 v_delFlg 赋值 好?
为什么?
谢谢
可以简单的遍历每个表
SELECT count(*) into number FROM ALL_TAB_COLS where 条件;
如果number <> 0 则是成立。。
select DISTINCT allsyno.table_name,allsyno.table_owner, allsyno.synonym_name
from all_tab_cols atc,
all_synonyms allsyno
where atc.table_name = allsyno.table_name
and atc.owner = allsyno.table_owner
and exists
(
select 1
from all_tab_cols
where atc.column_name = all_tab_cols.column_name
and atc.column_name = 'DEL_FLG'
or atc.column_name = 'ENTITY_CRE_FLG'
)
改成in 的如上,虽然没有的到想要的答案,不过还是要感谢四楼的,明早结贴。