oracle的存储过程不能使用drop语句吗?
发布网友
发布时间:2022-05-06 01:20
我来回答
共3个回答
热心网友
时间:2022-05-06 02:50
存储过程里面, 一般只写 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 , 然这个表不删除了。
热心网友
时间:2022-05-06 04:08
你要执行drop和create、alter 这样的语句要这么执行:
execute immediate 'drop table table_name';追问请问这么写的话,需要不需要commit?
追答不需要的,这个又不是dml语句,只有dml语句才需要commit。
oracle的存储过程不能使用drop语句吗?
存储过程里面, 一般只写 DML 的语句。也就是基本的 SELECT . INSERT, DELETE , UPDATE 这一类的语句。如果你要在存储过程里面, 执行 DDL 语句。也就是 CREATE, ALTER, DROP 这一类的语句。那么需要使用动态 SQL 来处理。也就是 EXECUTE IMMEDIATE ( 'CREATE TABLE test( ...
如何在oracle存储过程中drop 序列和新建序列
1、首先要保证该数据库用户有删除序列和新建序列的权限,存储过程中这个权限要显示赋权:grant create sequence to 数据库用户;grant drop any sequence to 数据库用户;2、存储过程中创建序列和删除序列:创建序列:execute immediate 'create sequence 序列名' || chr(10) || 'minvalue 1' || ch...
Oracle存储过程常用的权限有哪些?
Oracle 存储过程(Stored Procedure)是一段预定义的程序,可以被存储在数据库中并在需要时被调用执行。与其他程序一样,存储过程需要适当的权限设置,以便只有授权用户才能访问和执行它。下面是 Oracle 存储过程常用的权限:CREATE PROCEDURE 权限:允许用户创建存储过程。ALTER PROCEDURE 权限:允许用户修改已经...
ORACLE 里无法Drop Procedure
存储过程在执行过程中没执行完成,被锁定了吧。你修改编译的时候卡死,这个时候就锁定了。你后面drop当然也执行不成功。解决方法:先查找锁定的存储过程对应的sid,serial# select s.sid,s.serial# FROM dba_ddl_locks l,v$session s where l.name =upper('你的存储过程名称'); and s....
Oracle的过程procedure在用完关闭后下次还可以再次使用吗?还是只能用...
存储过程的创建create、删除drop 属于ddl的语法。存储过程的调用步骤里是没有所谓的关闭存储过程的。只有如果存储过程内部用到游标,需要关闭。其它程序调用存储过程用到command(c#)之类的要考虑关闭。
oracle 怎么删除 包 TESTPACKAGE 中的存储过程
写的内容看不明白,你想删除的这个存储过程 属不属于 创建包的语句里面的? 如果是属于包里的存储过程,那么打开package\package body,将对应存储过程删除即可。如果不属于包内的存储过程,直接drop procedure 存储过程名; 即可。
谁能介绍如何修改一个Oracle存储过程的实际操作步骤?
放弃一个Oracle存储过程 如果在数据库中你不在需要一个存储过程你可以删除它,SQL语句 DROP PROCEDURE 完成从数据库中删除一个存储过程,DROP PROCEDURE 在SQL中被归类为数据定义语言(DDL) 类操作,其他的例子有CREATE, ALTER, RENAME 和TRUNCATE。.在SQL*Plus 命令提示符下,使用DROP PROCEDURE SQL 语句...
oracle怎么删除存储过程,函数,触发器,的语句
删除存储过程 DROP PROCEDURE xxxx 删除函数 DROP FUNCTION xxxx 删除触发器 DROP TRIGGER xxxx
谁帮我修改一下oracle中的这个存储过程和函数
begin v_sql:='drop table tname';v_sql:='create table tname (c1 char,c2 char)';for i in 1..100 loop v_sql:='insert into tname(c1,c2) values('||i||',''this is the '||i||' th one'')';end loop commit;end;你那函数和过程差不多,语法叫我改了,内容没测 ...
Oracle 存储过程IF ELSE 老提示 DROP TABLE 时有错
存储过程里面不能直接写DDL then excute immediate “DROP TABLE SJKPROBHCR”;Else