--如果存在数据库表的就删除,没有的话 就创建一个
create or replace procedure deleteTable(tableName_temp in varchar2) is
temp_tableCount number(10) := 0; --查询表存在的数
v_ival number(10); --loop的临时值
temp_grantuser varchar2(100);
v_createTableSQL varchar2(500); --创建表的SQL
v_deleteTableSQL varchar2(500); --删除表的SQL
begin
select count(*)
into temp_tableCount
from user_tables
where table_name = upper(tableName_temp);
v_createTableSQL := 'create table ' || tableName_temp ||
'( a number(8) primary key, b varchar2(20))';
--v_createTableSQL := 'create table '||tableName_temp||' as select sysdate as sysdate_temp from dual;';
v_deleteTableSQL :='drop table '||tableName_temp||' cascade constraints';
if temp_tableCount > 0 then
execute immediate v_deleteTableSQL;
dbms_output.put_line('删除表成功'||tableName_temp||'!!');
elsif temp_tableCount = 0 then
select user into temp_grantuser from dual;
--必须要给用户赋予权限才可以执行create
execute immediate 'grant create any table to '|| temp_grantuser;
execute immediate v_createTableSQL;
dbms_output.put_line('创建表'||tableName_temp||'成功!!');
else
dbms_output.put_line('出现异常情况!!');
end if;
--------------------------------循环处理快------------------------------------
--Loop循环
v_ival :=0;
loop
exit when v_ival>3;
--循环体
v_ival := v_ival+1;
dbms_output.put_line('loop循环:'||v_ival);
end loop;
exception
--异常处理代码块
when no_data_found then
dbms_output.put_line('发生系统异常:未找到有效的数据!');
when too_many_rows then
dbms_output.put_line('发生系统异常:查询结果超出预期的一行!');
-- when ex_lesszero then
--DBMS_OUTPUT.put_line('sqlcode : ' ||sqlcode);
-- dbms_output.put_line('发生用户异常:数值不能为负!'||sqlcode||'异常描述:'||sqlerrm);
--when others then --other例如Exception
-- rollback;
-- dbms_output.put_line('发生异常!'||sqlcode||'异常的描述:'||sqlerrm);
end deleteTable;
--select to_char(sysdate+ interval '8' day,'yyyy-MM-dd HH24:MM:ss') from dual;
--查询权限
select * from session_privs
分享到:
相关推荐
首先,在数据库端创建简单的存储过程。 create or replace procedure test_msg(i_user in varchar2, o_msg out varchar2) is begin o_msg := i_user ||', Good Morning!'; end; 然后,开始在Python命令行中进行...
Oracle 数据库创建存储过程和触发器 Oracle 数据库创建存储过程和触发器是高级数据库开发设计的重要组成部分。存储过程和触发器是一种特殊类型的数据库对象,它们可以实现复杂的业务逻辑和数据处理操作。 存储过程...
根据提供的Oracle存储过程创建示例,我们可以详细地探讨与这些示例相关的Oracle数据库中的关键概念和技术要点。 ### 1. 创建基本的存储过程 #### 1.1 无参数存储过程 ```sql CREATE OR REPLACE PROCEDURE p_...
CREATE PROCEDURE 语句是用来创建 Oracle 存储过程的语句,变量声明是用来声明变量的语句,控制语句是用来控制流程的语句,循环语句是用来循环执行的语句。 关于 Oracle 存储过程的若干问题备忘 在学习 Oracle ...
在 Oracle 中,plsql 是一种强大的编程语言,可以用来创建存储过程和定时任务执行。在本文中,我们将详细介绍如何使用 plsql 创建存储过程并创建 job 定时任务执行。 一、创建存储过程 在 Oracle 中,存储过程是指...
Job 机制允许开发者创建、计划和执行存储过程,实现自动化和批量处理。 Broken() 过程 Broken() 过程用于更新一个已提交的工作的状态,典型地是用来把一个已破工作标记为未破工作。这个过程有三个参数:job、...
1. **创建存储过程**:在Oracle中,存储过程是一组预先编译好的SQL和PL/SQL语句,可以接受参数并返回结果。为了实现定时更新数据,我们需要编写一个存储过程,该过程包含必要的SQL更新语句。例如,以下是一个简单的...
《Oracle触发器与存储过程高级编程》第3版是一本深入探讨Oracle数据库中触发器和存储过程技术的专业书籍。在Oracle数据库系统中,触发器和存储过程是数据库管理员和开发人员进行复杂业务逻辑处理和数据管理的重要...
本文将详细介绍如何在Oracle中创建存储过程。 首先,创建存储过程需要使用`CREATE PROCEDURE`语句。这个语句的基本结构如下: ```sql CREATE [ OR REPLACE ] PROCEDURE procedure_name [ ( parameter [ IN | OUT |...
在给出的“简单的存储过程.txt”文件中,可能包含了一个示例存储过程的定义和如何通过JDBC调用它的Java代码。例如,一个存储过程可能用于插入数据: ```sql CREATE OR REPLACE PROCEDURE insert_user ( p_username...
#### 二、创建存储过程 根据提供的部分代码示例,我们可以看到一个简单的存储过程`TESTA`被创建: ```sql CREATE OR REPLACE PROCEDURE TESTA( PARA1 IN VARCHAR2, PARA2 IN VARCHAR2 ) AS BEGIN INSERT INTO ...
使用`CREATE PROCEDURE`语句创建存储过程,定义其名称、参数和执行体。例如: ```sql CREATE PROCEDURE proc_name (param1 datatype, param2 datatype) AS -- 声明局部变量 local_var datatype; BEGIN -- ...
这些文件通常用于创建存储过程,每个文件可能包含一个或多个过程。例如,`c.sql`可能包含了创建某个特定业务逻辑的存储过程,而`b.sql`可能处理另一组操作,如数据更新或查询。`student.sql`可能与学生管理相关的...
#### 三、创建存储过程 首先,我们需要创建一个简单的存储过程作为示例。在这个例子中,我们将创建一个名为`INF_HstIshISTR`的存储过程,用于向表`abc`中插入一条记录。 ```sql CREATE OR REPLACE PACKAGE mqce IS...
ORACLE创建过程的语法
使用`CREATE PROCEDURE`语句创建存储过程,定义输入参数、输出参数和过程体。 2. **调用存储过程** 可以通过`EXECUTE`语句或在SQL查询中调用存储过程。 3. **存储过程的优势** - 提高性能:减少网络通信,因为...
2. 在Oracle数据库中创建存储过程,这通常通过发出`CREATE OR REPLACE PROCEDURE` SQL语句来完成。 3. 使用SQL*Plus工具运行存储过程,以便测试和验证其功能。 4. 对存储过程进行修改,以适应需求的变化或修复错误。...