oralce删除表,存储过程,函数

-- 删除表 存储过程 函数
DECLARE
TYPE name_list IS TABLE OF VARCHAR2(40);
TYPE type_list IS TABLE OF VARCHAR2(20);

Tab_name name_list:=name_list();
Tab_type type_list:=type_list();

sql_str VARCHAR2(500);
BEGIN
sql_str := ‘select uo.object_name,uo.object_type from user_objects uo where uo.object_type not in(‘‘INDEX‘‘,‘‘LOB‘‘) order by uo.object_type desc‘;
EXECUTE IMMEDIATE sql_str BULK COLLECT INTO tab_name,tab_type;

FOR i IN Tab_name.FIRST.. Tab_name.LAST LOOP
sql_str := ‘DROP ‘ || Tab_type(i) || ‘ ‘ || Tab_name(i);
EXECUTE IMMEDIATE sql_str;
END LOOP;
END;
时间: 2024-07-30 02:12:45

oralce删除表,存储过程,函数的相关文章

SQL 判断 ‘表,存储过程,函数 ...’ 已是否存在

下面为您介绍sql下用了判断各种资源是否存在的代码,需要的朋友可以参考下,希望对您学习sql的函数及数据库能够有所帮助.库是否存在if exists(select * from master..sysdatabases where name=N'库名')print 'exists'elseprint 'not exists'----------------- 判断要创建的表名是否存在if exists (select * from dbo.sysobjects where id = object

批量删除Sql Server对象(表,存储过程,触发器)

先在系统表中找到要处理的表名或者是存储过程的名字,在用游标对其进行处理 PS:SqlServer 2000使用的是系统表是sysobjects,类型字段是:xtype; SqlServer 2005以上版本的系统表是Sys.Objects,类型字段是Type 本文中以Sql2005为例,Sql2000版本请自行按照上述说明进行替换 注意  sys.objects 中type的值不同 删除命令是不同的 如删除存储过程用drop PROCEDURE PROCEDURENAME 删除表用 drop t

SQLServer 删除所有表和删除所有存储过程

1.删除所有表 use 数据库declare @tname varchar(8000)set @tname=''select @tname=@tname + Name + ',' from sysobjects where xtype='U'select @tname='drop table ' + left(@tname,len(@tname)-1)exec(@tname) 2.删除所有存储过程 use 数据库declare @tname varchar(8000)set @tname=''s

代码收藏系列--mysql创建数据库、数据表、函数、存储过程命令

创建mysql数据库 CREATE DATABASE IF NOT EXISTS `database_name` DEFAULT CHARSET utf8 COLLATE utf8_general_ci; 创建mysql数据表 drop table if exists `table_name`; create table if not exists `table_name` ( id int auto_increment primary key comment '主键编号', `name` va

Sql笔记-查询数据仅出现过一次、小数据位不为零、删除表及序列、ifnull函数

查询数据表中每条相同的数据仅出现一次 select  distinct(ORDER_NO ) from ibsp_record_fee 查询数据表中数据中小数位不为0 select * from ibsp_pay_record pr where  pr.amount<>round(pr.amount,0) 或者 select * from ibsp_pay_record pr where  pr.amount!= cast(pr.amount as decimal(13,0)) 删除表及id序

sql 创建多表删除的存储过程

CREATE PROCEDURE [dbo].[存储哦过程的名称] @userID varchar(50) --声明变量ASBEGINIF(@userID='' OR @userID IS NULL) --判断是否输入BEGIN   SELECT '0' as 'message','请输入要删除的用户ID!' AS 'ErrorInfo' --提示信息   RETURNEND BEGIN TRANSACTION --开启事务 DELETE FROM 表1 WHERE ID = @userID;

mysql使用存储过程&amp;函数实现批量插入

写这边文章的目的,是想结合mysql 存储过程+函数完成一个批量删除的功能吧...正好也好加深下对procedure和function的熟练操作吧...废话不多说,我就直接上表结构啦哈,如下: create table dept( id int unsigned primary key auto_increment, deptno mediumint unsigned not null default 0, dname varchar(20) not null default "",

SQL语句中----删除表数据drop、truncate和delete的用法

一.SQL中的语法 1.drop table 表名称                         eg: drop table  dbo.Sys_Test 2.truncate table 表名称                     eg: truncate  table dbo.Sys_Test   3.delete from 表名称 where 列名称 = 值      eg: delete from dbo.Sys_Test where test='test' 二.drop,tru

删除表(转)

http://www.examw.com/Oracle/jishu/104237/ 删除表(记录和结构)的语名delete   ————   truncate      ———— drop DELETE (删除数据表里记录的语句) DELETE FROM表名 WHERE 条件; 注意:删除记录并不能释放ORACLE里被占用的数据块表空间. 它只把那些被删除的数据块标成unused. 如果确实要删除一个大表里的全部记录, 可以用 TRUNCATE 命令, 它可以释放占用的数据块表空间 TRUNCA