Oracle 包内的存储过程的动态sql

—创建包 create or replace package test_pkg is g_public_flag varchar2(1); function test_function(p_param1 varcha

—创建包
 create or replace package test_pkg is
  g_public_flag varchar2(1);
 
  function test_function(p_param1 varchar2,
                          p_param2 varchar2) return varchar2;
  function  hello_function(p_param3 varchar2) return varchar2;
  procedure ff(p1 varchar2);                   
  end;
 

 –包体
  create or replace package body test_pkg is
  g_private_flag varchar2(1) := ‘Y’;
 

  function test_function(p_param1 varchar2,
                          p_param2 varchar2) return varchar2
    is
      val varchar2(10):=’hello’;
   
    begin
      dbms_output.put_line(‘helo’);
      return val;
    end ;
   
  function hello_function(p_param3 varchar2) –参数与包头中必须保持一致
    return varchar2 is
    val varchar2(10):=’hello’;
  begin
      dbms_output.put_line(‘world’);
      return val;
  end;
  procedure ff(p1 varchar2) is
    flag number;
    pp1  VARCHAR2(10):=’p’; 
    p2  VARCHAR2(10):=’p’;
    p3  VARCHAR2(10):=’p’;
    p4  VARCHAR2(10):=’p’;
  begin
        select count(*)into flag from  all_all_tables where table_name=’LOGTABLE1′;
        dbms_output.put_line(flag);
        if(flag = 0) then
        execute immediate
        ‘CREATE TABLE logtable1 (userid VARCHAR2(10), logdate VARCHAR2(10),exception_id VARCHAR2(10),exception_msg VARCHAR2(10))’;
        end if; 
        execute immediate ‘insert into logtable1 values (:1,:2,:3,:4)’ using ‘1’,’1′,’2′,’3′; –只能动态插入
  end;
  end; 

—-测试
 declare
 begin
    dbms_output.put_line(test_pkg.test_function(‘1′,’1’));
    dbms_output.put_line(test_pkg.hello_function(‘1’));
    test_pkg.ff(‘dd’);
 end;
 select * from logtable1;
 drop table logtable1

linux

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/1894911.html

(0)
上一篇 2025年2月22日 13:47:03
下一篇 2025年2月22日 13:47:44

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Oracle万能分页法的存储过程

    Oracle万能分页法的存储过程 –创建一个包,在包中定义一个 游标类型 create or replace package testfenyepackage as type test oracle万能分页法的存储过程 &#82…

    数据库 2025年2月23日
    100
  • 关于ORA-01002 读取违反顺序

    关于ORA-01002 读取违反顺序,end loop 进行了循环取值,但是在JDBC调用存储过程时,只需要返回一个结果集(cursor)就行,此时就 今天,运行自己写的JDBC调用存储过程时遇到了如下错误: ORA-01002 读取违反顺…

    数据库 2025年2月22日
    100
  • 如何创建Oracle新用户(新schema)

    Oracle中创建新的user, 也就相应地创建了一个新的schema, 用来区别其他目录的同时, 还保存所有相关user的数据对象以及user的表. Oracle中创建新的user, 也就相应地创建了一个新的schema, 用来区别其他目…

    数据库 2025年2月22日
    100
  • 浅谈Oracle执行计划

    要对sql语句进行分析,首先就是要去看sql语句的执行计划是否存在问题,oracle在10g之后,默认采用CBO基于代价的优化器,sql语句的 要对sql语句进行分析,首先就是要去看sql语句的执行计划是否存在问题,Oracle在10g之后…

    数据库 2025年2月22日
    100
  • Ant中执行Oracle存储过程

    Ant中执行Oracle存储过程,同样的oracle dll脚本: 从错误上看是一行结尾没有 同样的oracle dll脚本: 在Ant中运行出现错误如下 06/08/12 14:22:59.800 INFO: [ProcessWrappe…

    数据库 2025年2月22日
    100
  • ROWID走索引之嫌疑犯抓获

    通过自己做的分区表来分析,发现不走索引,而把原来的表结构改名,创建新表. 分析后发现 走索引了! 难道是分区的 储存参数? 还是分区 通过自己做的分区表来分析,发现不走索引,而把原来的表结构改名,创建新表. 分析后发现 走索引了! 难道是分…

    数据库 2025年2月22日
    100
  • ROWID走索引之判决

    ROWID走索引之判决,在NOT NULL 且数据位0的情况下 index的 block 为0,table的至少为1 那么index的cost就是0,CBO当然会选择cost ROWID走索引之判决: sql> select rowi…

    数据库 2025年2月22日
    100
  • ORA-12519错误的解决方案

    OERR: ORA-12519 TNS:no appropriate service handler found,客户端连接间歇性失败,报错ORA-12519 OERR: ORA-12519 TNS:no appropriate servi…

    数据库 2025年2月22日
    100
  • Oracle隐含参数scn不一致启动

    Oracle隐含参数:allow_resetlogs_corruption的使用提示:Oracle的隐含参数只应该在测试环境或者在Oracle Support的支持下使用or Oracle隐含参数:allow_resetlogs_corru…

    数据库 2025年2月22日
    100
  • Oracle更改端口后lsnrctl无法启动

    最近在研究Oracle 10G,先从安装的时候说起吧,安装的时候,由于默认端口1521已经被其他程序占了,装完oracle后,端口变成了1522 最近在研究Oracle 10G,先从安装的时候说起吧,,安装的时候,由于默认端口1521已经被…

    数据库 2025年2月22日
    100

发表回复

登录后才能评论