Oracle 常用sql语句以及存储过程记录

Oracle 常用sql语句以及存储过程记录

  1. 存储过程动态参数

    create or replace procedure p_demo_action(a_keyarray       in array_varchar2_50,
                                                         a_valuearray     in array_varchar2_50,
                                                         a_out_success    out varchar2,
                                                         a_out_msg        out varchar2,
                                                         A_OUT_KEYARRAY   OUT ARRAY_VARCHAR2_50,
                                                         A_OUT_VALUEARRAY OUT ARRAY_VARCHAR2_50,
                                                         A_OUT_CURSOR_01 OUT SYS_REFCURSOR,
                                                         a_out_cursor_name out varchar2) is
    v_name varchar2(50);                                                     
    begin
    v_name := f_get_value_by_key_in_array(a_keyArray,a_valuearray,'tcName');//获取Java里面传递过来的参数
    a_out_success := 'true';
    a_out_msg     := 'OK';
    exception
    when others then
    rollback;
    a_out_success := 'false';
    a_out_msg     := replace(sqlerrm, 'ORA-20000:');
    end;
  2. 根据key建获取对应的value值函数

    create or replace function f_get_value_by_key_in_array(a_key_array   in array_varchar2_50,
                                                       a_value_array in array_varchar2_50,
                                                       a_key         in varchar2)
    return varchar2 is
    begin
    for i in 1 .. a_key_array.count loop
    if a_key = a_key_array(i) then
      return a_value_array(i);
    end if;
    end loop;
    return '';
    end;
  3. 根据sql语句生成临时表

    create or replace procedure P_CREATE_TMP_TABLE_BRO(a_select_sql varchar2,
                                                     a_table      varchar) is
    --ex:call P_CREATE_TABLE_RUN('tb_cust_0a','select * from tb_customer_0a')
    v_sql      varchar2(30000);
    v_theCount number;
    /*
    *--模块功能:根据结果集生成数据表,等同SQL Server的[select into表]功能
    */
    begin
    if (upper(substr(a_table, 0, 4)) <> 'TMP_') then
      raise_application_error(-20001,
                              '违反命名规则:系统只接受以tmp_开头命名的数据表' ||
                              upper(substr(a_table, 0, 4)));
    end if;
    
    select count(1)
      into v_theCount
      from user_tables
     where table_name = upper(a_table);
    if (v_theCount > 0) then
      v_sql := f_drop_table(a_table);
      execute immediate v_sql;
    end if;
    
    select count(1)
      into v_theCount
      from user_tables
     where table_name = upper(a_table);
    if (v_theCount = 0) then
      v_sql := 'CREATE TABLE ' || a_table || ' AS ' || a_select_sql;
      execute immediate v_sql;
    end if;
    end;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
选定某一主题,运用oracle数据库,以及相关技术方法设计和开发一个信息管理的数据库系统,实现数据库的开发应用以及日常管理维护等基本功能。 具体要求如下: (1)选定某一主题,创建一个oracle数据库,对其进行日常管理及应用(全部用SQL语句实现): 1、创建数据库实例,数据库表空间,创建管理员,普通用户,并分别授予相应权限; 2、至少建立5个表,以及表间关系,使用到序列,索引,视图,同义词,约束,每个表至少插入相关信息10条记录; 3、要求使用sqlplus,pl/sql或developer建立存储过程,触发器和程序包等代码,其中要求用到游标,异常,各种语句等对表中数据进行处理; 4、使用自己熟悉的开发语言,加入界面,连接数据库; 5、报告要有操作截图展示,字数要求4000字左右,以及对 oracle数据库的学习体会,要求字数1000字以上。 (2)学生需完成设计报告文档,文档不得雷同; (3)以班为单位由班长统一提交,设计的数据库以及电子文档以个人名字命名,并以班集体为单位刻盘保存。 (4)根据作业难度、工作量、设计中创新性、报告书写规范化、作业运行结果及答辩情况综合评分,评分标准如下: 1、数据库的设计及实现,用户管理,权限分配,各种模式对象的使用合理; 2、块、游标、储存过程、函数、触发器等的设计及调用正确; 3、报告文档说明条理清晰,格式正确,写作规范 4、系统运行良好,有一定的独立性与创新性,态度积极认真;

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值