判断表是否存在(Oracle数据库)?
oracle判断表是否存在字段 oracle在plsql里执行如下代码:DECLARE v_table tabs.table_name%TYPE;v_sql VARCHAR2(888);v_q NUMBER;CURSOR c1 IS SELECT table_name tn FROM tabs;TYPE c IS REF CURSOR;c2 c;BEGIN DBMS_OUTPUT.PUT_LINE('以下为空数据表的表名:');FOR r1 IN c1 LOOP v_table:=r1.tn;v_sql:='SELECT COUNT(*)q FROM '|v_table;OPEN c2 FOR v_sql;LOOP FETCH c2 INTO v_q;EXIT WHEN c2%NOTFOUND;IF v_q=0 THEN DBMS_OUTPUT.PUT_LINE(v_table);END IF;END LOOP;CLOSE c2;END LOOP;EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('Error occurred');END;然后点output,显示的就是空表
Oracle如何判断是否存在某张表 在ORACLE中可以通过查询数据字典判断.如果判断当前模式下是否存在,可以查 user_tablesif exists(select 1 from user_tables where table_name='表名')如果判断所有模式下是否存在,则需要连接system或者sys.然后查user_tablesconn system/密码(或者conn sys/密码 as sysdba)if exists(select 1 from dba_tables where table_name='表名')注意:以上表名全部需要用大写字母.省略号表示判断之后需要执行的语句.
oracle创建表之前判断表是否存在,如果存在则删除已有表 不用判断,直接先执行删除你要创建的表名,然后再执行创建语句;很完美,为什么要判断呢?
oracle判断表是否存在 判断表是否存在当前数据库中-创建一个函数create or replace function Fun_Is_Exists_Table(i_table_name in varchar2)return number iso_result number;begindeclarenum number;beginselect count(1)into num from user_tables where table_name=upper(i_table_name)or table_name=lower(i_table_name);if num>;0 theno_result:=1;end if;if numo_result:=0;end if;end;return o_result;end Fun_Is_Exists_Table;创建存储过程调用函数create or replace procedure Is_Exists_Table(i_table_name in varchar2)asbegindeclare num number;beginnum:=Fun_Is_Exists_Table(i_table_name);if num>;0 thendbms_output.put_line('表->;>;'|upper(i_table_name)|'已存在');end if;if numdbms_output.put_line('表->;>;'|upper(i_table_name)|'不存在');end if;end;end Is_Exists_Table;调用存储过程在控制台输出