oracle删除存储过程语句(Oracle存储过程中如何获得DELETE语句执行后删除的记录数)

本文目录
- Oracle存储过程中如何获得DELETE语句执行后删除的记录数
- oracle的存储过程不能使用drop语句吗
- 谁能介绍如何修改一个Oracle存储过程的实际操作步骤
- ORACLE创建一个存储过程(删除指定数据)
- oracle存储过程删除了很久都删不掉怎么办
- oracle删除一些表数据,然后释放表空间的存储过程
- oracle怎么删除存储过程,函数,触发器,的语句
Oracle存储过程中如何获得DELETE语句执行后删除的记录数
存储过程中可以通过在delete语句执行的前后分别select count(*) from tablename 查询出当前表的记录条数,然后相互相减就可以得到delete语句删除的条数。
create or replace procedure p_procedure as
num integer;
beforenum integer;
afternum integer;
begin
select count(*) into beforenum from tb1;
EXECUTE IMMEDIATE ’delete from tb1 where .’;
select count(*) into afternum from tb1;
num := beforenum - afternum;
end;
oracle的存储过程不能使用drop语句吗
存储过程里面, 一般只写 DML 的语句。
也就是基本的 SELECT . INSERT, DELETE , UPDATE 这一类的语句。
如果你要在存储过程里面, 执行 DDL 语句。
也就是 CREATE, ALTER, DROP 这一类的语句。
那么需要使用动态 SQL 来处理。
也就是
EXECUTE IMMEDIATE ( ’CREATE TABLE test( id int ) ’ );
EXECUTE IMMEDIATE ( ’DROP TABLE test ’ );
这样的方式来处理。
对于 DDL 语句, 这类语句, 如果成功了, 就生效了, 不能回滚的。
也就是
当你 Drop Table 某个表的时候, 执行成功了, 表就被删除了。
不需要你 Commit 的。
你也无法 Rollback , 然这个表不删除了。
谁能介绍如何修改一个Oracle存储过程的实际操作步骤
以下是介绍如何修改一个Oracle存储过程的实际操作步骤,如果你要执行Oracle存储过程,首先你需要写出一个关于输出的字符串“Hello World!”的存储过程,以下的相关内容就是接这讲述Oracle存储的步骤。
让我们写一个输出字符串“Hello World!”的存储过程,用Notepad打开你的skeleton.sql 文件,. 用DBMS_OUTPUT.PUT_LINE 过程调用去替换NULL语句,如下所示:
CREATE OR REPLACE PROCEDURE skeleton
IS
BEGIN
DBMS_OUTPUT.PUT_LINE(’Hello World!’);
END;
保存到文件skeleton.sql.
从SQL*Plus命令行, 打开文件skeleton.sql .
SQL》 @skeleton
SQL》
CREATE OR REPLACE PROCEDURE skeleton
IS
BEGIN
DBMS_OUTPUT.PUT_LINE(’Hello World!’);
* END;
SQL》 /
SQL*Plus 通知你存储过程成功创建并输出提示信息:Procedure created.
SQL》
用EXECUTE 命令运行你的存储过程:
SQL》 EXECUTE skeleton;
SQL*Plus显示存储过程运行成功:
PL/SQL procedure successfully completed.
我们想要的输出字符串 "Hello World!"没有出来,在显示一个DBMS_OUTPUT.PUT_LINE 结果前需要运行一个SET命令,在SQL*Plus 命令行提示符,键入:
SQL》 SET SERVEROUTPUT ON
再次执行你的存储过程:
SQL》 EXECUTE skeleton;
现在结果输出了:
Hello World!
PL/SQL procedure successfully completed.
当调试一个存储过程时,遵循一样的步骤,修改SQL文件,创建存储过程,执行存储过程,根据编译器反馈的出错信息进行修改,这一步是非常繁琐的,需要依靠经验。
在实际的商用存储过程的开发调试过程中,由于涉及很多表、类型、光标、循环、条件等复杂的逻辑,和PL/SQL语句的灵活运用,编译时会产生很多错误提示信息,程序员在根据这些错误信息定位,进行修正,再编译最后得到正确的结构;
放弃一个Oracle存储过程
如果在数据库中你不在需要一个存储过程你可以删除它,SQL语句 DROP PROCEDURE 完成从数据库中删除一个存储过程,DROP PROCEDURE 在SQL中被归类为数据定义语言(DDL) 类操作,其他的例子有CREATE, ALTER, RENAME 和TRUNCATE。.
在SQL*Plus 命令提示符下,使用DROP PROCEDURE SQL 语句删除你的叫做skeleton的存储过程:
SQL》 DROP PROCEDURE skeleton;
SQL*Plus assures us the procedure has been removed:
Procedure dropped.
本文详细讨论了如何使用Oracle工具开发Oracle存储过程的步骤。最后在存储过程的使用中可能是程序直接调用,也可能被触发器调用。
希望我的回答能对您有所帮助!!!
ORACLE创建一个存储过程(删除指定数据)
sql_dl=’delete from report_data t where t.address in (’广东省’)’
这行双重单引号,你不觉得有问题吗?需要转义一下。
还有个问题,你的这条sql明明可以不用in的,是还有别的省份没写进来吗?如果没有别的省份,建议使用=而不要用in,因为in与=的性能差距可是很大的,数据量越大,性能差距越明显。
oracle存储过程删除了很久都删不掉怎么办
存储过程删不掉,你查下session,很可能是会话在调用你在删的过程,把调用存储过程对应的session杀掉就可以了
oracle删除一些表数据,然后释放表空间的存储过程
create or replace procedure ttt is
begin
delete from bbb where。。。。。。 ;
commit;
execute immediate ’create table aaa as select * from bbb’;
commit;
--删除表bbb所有数据
execute immediate ’truncate table bbb’;
commit;
--将临时表aaa的数据转移到bbb表中
insert into bbb select * from aaa;
commit;
--删除临时表aaa
execute immediate ’drop table aaa’;
commit;
end;
顺便说一句,你之前为什么要delete表bbb里的数据呢?还有,你存储过程里没end
---------补充------
||是用来区分普通字段和变量字段的
他那个写法不和我这个一样吗?
他那个只不过把我单引号里的sql设置成了一个变量,叫str
oracle怎么删除存储过程,函数,触发器,的语句
drop procedure p_p1;
drop function f_p1;
drop trigger tri_table;

更多文章:
switch case用法举例python(为什么Python中没有Switch/Case语句)
2025年9月27日 18:45
checkbox 选中事件(js动态生成的checkbox取值和选中事件)
2025年9月26日 11:00
用数据库做管理系统(何谓数据库管理系统简述数据库管理系统的功能)
2026年7月20日 19:30
个人述职报告ppt(简约彩色个人述职报告PPT模板最新怎么样)
2025年9月19日 22:30
驽马十驾的故事(“驽马十驾,功在不舍”是什么意思古代早有“龟兔赛跑”的故事!)
2025年8月1日 23:30
memory lapse是什么意思?collapse;是什么意思
2026年5月28日 23:45
delphi三层数据库技术(delphi 多个数据库使用一个三层问题)
2025年12月4日 01:45
count函数怎么统计文字(count如何计算同一种颜色的文字)
2025年6月1日 12:45
java打印爱心图案的代码(html爱心代码用devc++能打出来嘛)
2026年8月5日 05:00
python如何使用多线程(Python的keyboard模块使用多线程)
2026年9月14日 03:00












