`
xinyoulinglei
  • 浏览: 125983 次
社区版块
存档分类
最新评论

oracle简单的创建存储过程

阅读更多
  --如果存在数据库表的就删除,没有的话 就创建一个
 

  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









分享到:
评论

相关推荐

    Python使用cx_Oracle调用Oracle存储过程的方法示例

    首先,在数据库端创建简单的存储过程。 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创建存储过程

    根据提供的Oracle存储过程创建示例,我们可以详细地探讨与这些示例相关的Oracle数据库中的关键概念和技术要点。 ### 1. 创建基本的存储过程 #### 1.1 无参数存储过程 ```sql CREATE OR REPLACE PROCEDURE p_...

    oracle存储过程学习经典入门

    CREATE PROCEDURE 语句是用来创建 Oracle 存储过程的语句,变量声明是用来声明变量的语句,控制语句是用来控制流程的语句,循环语句是用来循环执行的语句。 关于 Oracle 存储过程的若干问题备忘 在学习 Oracle ...

    plsql创建存储过程并创建job定时任务执行-详细笔记文档总结

    在 Oracle 中,plsql 是一种强大的编程语言,可以用来创建存储过程和定时任务执行。在本文中,我们将详细介绍如何使用 plsql 创建存储过程并创建 job 定时任务执行。 一、创建存储过程 在 Oracle 中,存储过程是指...

    Oracle定时执行存储过程

    Job 机制允许开发者创建、计划和执行存储过程,实现自动化和批量处理。 Broken() 过程 Broken() 过程用于更新一个已提交的工作的状态,典型地是用来把一个已破工作标记为未破工作。这个过程有三个参数:job、...

    oracle 定时任务,使用存储过程更新数据

    1. **创建存储过程**:在Oracle中,存储过程是一组预先编译好的SQL和PL/SQL语句,可以接受参数并返回结果。为了实现定时更新数据,我们需要编写一个存储过程,该过程包含必要的SQL更新语句。例如,以下是一个简单的...

    Oracle触发器与存储过程高级编程-第3版itpub.rar

    《Oracle触发器与存储过程高级编程》第3版是一本深入探讨Oracle数据库中触发器和存储过程技术的专业书籍。在Oracle数据库系统中,触发器和存储过程是数据库管理员和开发人员进行复杂业务逻辑处理和数据管理的重要...

    Oracle之创建存储过程.pdf

    本文将详细介绍如何在Oracle中创建存储过程。 首先,创建存储过程需要使用`CREATE PROCEDURE`语句。这个语句的基本结构如下: ```sql CREATE [ OR REPLACE ] PROCEDURE procedure_name [ ( parameter [ IN | OUT |...

    jdbc连接oracle,执行存储过程,带数据库存储过程

    在给出的“简单的存储过程.txt”文件中,可能包含了一个示例存储过程的定义和如何通过JDBC调用它的Java代码。例如,一个存储过程可能用于插入数据: ```sql CREATE OR REPLACE PROCEDURE insert_user ( p_username...

    oracle 存储过程 函数 dblink

    #### 二、创建存储过程 根据提供的部分代码示例,我们可以看到一个简单的存储过程`TESTA`被创建: ```sql CREATE OR REPLACE PROCEDURE TESTA( PARA1 IN VARCHAR2, PARA2 IN VARCHAR2 ) AS BEGIN INSERT INTO ...

    oracle存储过程-帮助文档

    使用`CREATE PROCEDURE`语句创建存储过程,定义其名称、参数和执行体。例如: ```sql CREATE PROCEDURE proc_name (param1 datatype, param2 datatype) AS -- 声明局部变量 local_var datatype; BEGIN -- ...

    oracle的一个简单存储过程实例

    这些文件通常用于创建存储过程,每个文件可能包含一个或多个过程。例如,`c.sql`可能包含了创建某个特定业务逻辑的存储过程,而`b.sql`可能处理另一组操作,如数据更新或查询。`student.sql`可能与学生管理相关的...

    oracle 自动执行存储过程

    #### 三、创建存储过程 首先,我们需要创建一个简单的存储过程作为示例。在这个例子中,我们将创建一个名为`INF_HstIshISTR`的存储过程,用于向表`abc`中插入一条记录。 ```sql CREATE OR REPLACE PACKAGE mqce IS...

    ORACLE创建过程的语法

    ORACLE创建过程的语法

    oracle触发器与存储过程高级编程

    使用`CREATE PROCEDURE`语句创建存储过程,定义输入参数、输出参数和过程体。 2. **调用存储过程** 可以通过`EXECUTE`语句或在SQL查询中调用存储过程。 3. **存储过程的优势** - 提高性能:减少网络通信,因为...

    Oracle存储过程开发的要点

    2. 在Oracle数据库中创建存储过程,这通常通过发出`CREATE OR REPLACE PROCEDURE` SQL语句来完成。 3. 使用SQL*Plus工具运行存储过程,以便测试和验证其功能。 4. 对存储过程进行修改,以适应需求的变化或修复错误。...

Global site tag (gtag.js) - Google Analytics