本帖最后由 gjswxhb 于 2011-03-05 23:01:25 编辑

解决方案 »

  1.   

    1,cursor 中的语句有什么更高效的方法吗?
    2,用捕获异常后在变量赋指定值好还是 select count(*) 然后再更具记录条数 来给 v_delFlg 赋值 好?
    为什么?
    谢谢
      

  2.   

    exist 比in效率高点
    可以简单的遍历每个表
    SELECT count(*) into number FROM ALL_TAB_COLS where 条件;
    如果number <> 0 则是成立。。
      

  3.   

    有什么更好的方法吗?  distinct 和 in 有什么方法可以将其替换掉,提高效率?你只有固定的两个值 用in的效率应该比较好
      

  4.   

    这个function的功能可以用一条sql 语句实现吗?想了很久,没想出来,请指点,谢谢。
      

  5.   


    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 的如上,虽然没有的到想要的答案,不过还是要感谢四楼的,明早结贴。