oracle中判断表、字段、索引、主键、序列是否存在

判断表是否存在

function detect_table(str_in_tablename varchar2) return integer is
        i_l_number integer;
    begin
        select count(*)
          into i_l_number
          from user_tables
         where table_name = upper(str_in_tablename);

        return i_l_number;
    end;

 

判读字段是否存在

function detect_column(str_in_tablename  varchar2, str_in_columnname varchar2) return integer is
        i_l_number integer;
    begin
        select count(*)
          into i_l_number
          from user_tab_columns
         where table_name = upper(str_in_tablename)
           and column_name = upper(str_in_columnname);

        return i_l_number;
    end;

 

判断主键是否存在

function detect_constraint(str_in_tablename varchar2, str_in_constraint varchar2) return integer is
        i_l_number integer;
    begin
        select count(*)
          into i_l_number
          from user_constraints
         where table_name = upper(str_in_tablename)
           and constraint_name = upper(str_in_constraint);

        return i_l_number;
    end;

 

判断索引是否存在

 function detect_index(str_in_tablename varchar2, str_in_indexname varchar2) return integer is
        i_l_number integer;
    begin
        select count(*)
          into i_l_number
          from user_indexes
         where table_name = upper(str_in_tablename)
           and index_name = upper(str_in_indexname);

        return i_l_number;
    end;

 

判断序列是否存在

function detect_sequence(str_in_sequencename varchar2) return integer is
        i_l_number integer;
    begin
        select count(*)
          into i_l_number
          from user_sequences
         where sequence_name = upper(str_in_sequencename);

        return i_l_number;
    end;

你可能感兴趣的:(oracle)