shwq.net
当前位置:首页 >> 如何在orAClE中使用存储过程创建表,如果存在就先删除 >>

如何在orAClE中使用存储过程创建表,如果存在就先删除

create or replace procedure drop_table_by_time(begin_time in varchar2, end_time in varchar2) is cursor cur_tables is select object_name from user_objects where object_type = 'TABLE' and created > to_date(begin_time,'yyyy-mm-dd'...

这个过程就行了。。 create or replace procedure wym authid current_user is vn_ctn number(2); begin select count(*) into vn_ctn from user_all_tables a where a.table_name like upper('invbasdoc'); if vn_ctn > 0 then execute immedia...

PACKAGE can’t be renamed. PACKAGE BODY can’t be renamed. PROCEDURE can’t be renamed. FUNCTION can’t be renamed.

1、首先要保证该数据库用户有删除序列和新建序列的权限,存储过程中这个权限要显示赋权: grant create sequence to 数据库用户; grant drop any sequence to 数据库用户; 2、存储过程中创建序列和删除序列: 创建序列: execute immediate 'cre...

你不是已经drop table又重新创建了,有什么问题吗? 你的思路是对的,要创建前应该先判断,如果存在就删掉重建,不存在的话就直接创建。 只是,可以稍微简化一下代码,比如那两个select,不需要用execute immediate的方式。对于dml语句,可以直...

建议你去看一下本动动态SQL吧. declare stmt_ varchar2(2000); begin stmt_ := 'create table test as select 1 a from dual ' ; execute immediate stmt_ ; end ;

select count(*) into flag from all_tables where table_name=upper(你要判断的表名) if (flag=0) then execute immedate 'create table 表名(列名1,列名2...)' end if;

create 创建存储过程,replace 替换或者说是覆盖存储过程,procedure 即表示你是创建或者是替换存储过程 create or replace procedure 存储过程名

begin for t in (select owner,table_name from dba_tables where xxxx) loop execute immediate 'delete from '||t.owner||'.'t.table_Name; end loop; end commit ;

网站首页 | 网站地图
All rights reserved Powered by www.shwq.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com