`

oracle中的function,procedure,package.

阅读更多
create sequence seq_loginfo;
create table loginfo
(
  id number primary key,
  logName varchar(20) not null,
  logPass varchar(20) not null
);
--drop TABLE loginfo;
insert into loginfo(id, logname, logpass) values (seq_loginfo.nextval,'admin','123');    
select * from loginfo;
create or replace function validLogin(loginName_ varchar2,
                                      loginPwd_  varchar2) return number is
  cursor login_ is
    select * from loginfo t where t.logname = loginName_;
  r login_%Rowtype;
begin
  open login_;
  fetch login_
    into r;
  close login_;
  if (r.logPass is not null) then
    if (r.logPass = loginPwd_) then
      return 1;
    else
      return 0;
    end if;
  else
    return 0;
  end if;
end;
declare
  returnNumber_ number;
begin
  returnNumber_ := validLogin('admin', '123');
  dbms_output.put_line('returnNumber_ :=' || returnNumber_);
end;
create or replace procedure login_proc(
  loginname_ in loginfo.logname%type,
  loginpwd_  in loginfo.logpass%type,
  returnMsg_ in out varchar2) is
  cursor login_ is select * from loginfo t where t.logname=loginname_;
  r login_%Rowtype;
  begin
    open login_;
    fetch login_ into r;
    close login_;
    if(r.logPass is not null) then
       if(r.logPass = loginpwd_ )then
             returnMsg_:='登录成功';
        else
             returnMsg_:='密码错误'; 
        end if;
     else
       returnMsg_:='用户名有误';
    end if;
end; 
declare
  returnMsg_ varchar2(200);
begin
  login_proc('admin', '123', returnMsg_);
  dbms_output.put_line('returnMsg_ :=' || returnMsg_);
end;

create or replace package Login__ is
   function validLogin(loginName_ varchar2,
                                        loginPwd_ varchar2) return number;
   procedure login_proc(loginname_ in
                                         loginfo.logname%type,
                                         loginpwd_ in loginfo.logpass%type,
                                         returnMsg_ in out varchar2);
end;
create or replace package body Login__ is
   function validLogin(loginName_ varchar2, loginPwd_ varchar2) return number is cursor login_ is
    select * from loginfo t where t.logname = loginName_;


  r login_%Rowtype;
  begin
    open login_;
    fetch login_
      into r;
    close login_;
    if (r.logPass is not null) then
      if (r.logPass = loginPwd_) then
        return 1;
      else
        return 0;
      end if;
    else
      return 0;
    end if;
  end;
   procedure login_proc(loginname_ in loginfo.logname%type,
                                         loginpwd_  in loginfo.logpass%type,
                                         returnMsg_ in out varchar2) is
    cursor login_ is
      select * from loginfo t where t.logname = loginname_;
    r login_%Rowtype;
  begin
    open login_;
    fetch login_
      into r;
    close login_;
    if (r.logPass is not null) then
      if (r.logPass = loginpwd_) then
        returnMsg_ := '登录成功';
      else
        returnMsg_ := '密码错误';
      end if;
    else
      returnMsg_ := '用户名有误';
    end if;
  end;
end;
declare
  returnNumber_ number;
begin
  returnNumber_ := login__.validLogin('admin', '123');
  dbms_output.put_line('returnNumber_ :=' || returnNumber_);
end;
declare
  returnMsg_ varchar2(200);
begin
  login__.login_proc('admin', '123', returnMsg_);
  dbms_output.put_line('returnMsg_ :=' || returnMsg_);
end;
declare
  isnumber number;
begin
  isnumber := login__.ISNUMBER('12213');
  dbms_output.put_line('isnumber :=' || isnumber);
end;
分享到:
评论

相关推荐

    Oracle_function_package_procedure.rar_oracle_pl sql function_pl/

    在Oracle数据库中,PL/SQL(Procedural Language/Structured Query Language)是一种结构化查询语言的扩展,它允许开发人员编写复杂的数据库应用程序。本文将深入探讨在PL/SQL中Oracle的函数、过程、包以及事务管理...

    oracle汉字转拼音package包-支持UTF8

    在Oracle中,这样的包通常是开发人员自定义编写的,包含了一系列的PL/SQL程序单元,如过程(PROCEDURE)和函数(FUNCTION)。它们通过调用特定的API或者内置功能来完成汉字转拼音的任务。例如,可能会使用Oracle的...

    大型项目Oracle sql,function,procedures,package,cursor,job

    标题和描述中提到的“大型项目Oracle sql,function,procedures,package,cursor,job”涉及的是Oracle数据库管理和开发的核心概念。以下是对这些概念的详细解释: 1. **SQL(Structured Query Language)**:SQL...

    oracle中的存储过程.函数,包

    EXECUTE my_package.update_salary(7788, 5000); ``` 通过以上详细介绍,我们可以看出存储过程、函数和包都是Oracle数据库中非常重要的组件。它们不仅可以提高程序的性能,还可以简化复杂的业务逻辑处理,使得代码...

    Oracle2BPL-SQL.rar_oracle_pl/sql

    3. **子程序**:PL/PROCEDURE和FUNCTION是PL/SQL中的两种主要子程序。PROCEDURE用于执行一系列操作,不返回值;FUNCTION执行操作并返回一个值。它们可以有参数,并且可以嵌套定义。 4. **游标**:游标是处理单行...

    如何实现Oracle中字符串分隔.pdf

    在Oracle数据库中,字符串处理是常见的操作之一,特别是在数据处理和分析中。本文将详细介绍如何在Oracle中实现字符串分隔,以及提供一个实用的面向对象的解决方案。 在Oracle中,字符串分隔通常涉及到将一个长字符...

    oracle 包 procedure

    my_package.my_procedure(5, v_result); DBMS_OUTPUT.PUT_LINE(v_result); END; ``` 包和过程在实际应用中的好处包括: - **代码复用**:通过将相关的函数和过程组织在一起,可以避免代码重复,提高开发效率。 - ...

    Oracle PL SQL语言基础.rar

    6. **子程序**:包括函数(FUNCTION)和过程(PROCEDURE)。函数返回一个值,而过程只执行一系列操作但不返回值。它们可以接受参数,并且可以被其他PL/SQL代码调用。 7. **游标**:游标用于逐行处理查询结果,是PL/...

    Oracle数据库Package

    Oracle数据库中的Package是一种高级的模块化编程工具,它允许开发者将相关的过程、函数、变量和类型等编程元素组合在一起,形成一个逻辑上的整体。Package在Oracle数据库系统中扮演着重要的角色,提供了更好的代码...

    精通Oracle.10g.PL.SQL编程

    4. **PL/SQL子程序**:包括函数(Function)和过程(Procedure),它们是一组可重用的PL/SQL代码块。函数返回一个值,而过程不返回值,但可以修改程序状态或数据库。 5. **游标(Cursor)**:在PL/SQL中,游标用于...

    精通Oracle.10g.Pl.SQL编程

    3. **PL/SQL语法**:书中会详细介绍PL/SQL的语法,如声明变量、常量,使用流程控制语句(如IF-THEN-ELSIF,CASE,FOR循环),编写子程序(PROCEDURE和FUNCTION),以及异常处理机制。 4. **游标**:游标是PL/SQL中...

    oracle 存储过程 函数 dblink

    DBLink(Database Link)是一种允许在一个Oracle数据库实例中访问另一个Oracle数据库实例中的对象的技术。DBLink的应用场景非常广泛,例如在不同的数据库实例之间复制数据、合并多个数据库中的数据等。 #### 七、...

    oracle数据库开发规范.pdf

    7. 函数(function): 类似于存储过程,但返回一个值,文档中并未明确提及。 8. 包(package): 一组相关的过程、函数、变量和SQL语句的集合,如“pkg_”。 9. 类型(type): 用户自定义的数据结构,文档中提及了...

    Oracle包应用详解.doc

    在Oracle的PL/SQL环境中,为了更好地支持程序模块化的需求,引入了一种重要的概念——**包**。包作为一种数据库对象,能够将逻辑上相关的PL/SQL类型、对象和子程序等组合成一个更大的单位,实现了对这些PL/SQL程序...

    【中文】【精通Oracle.10g.Pl.SQL编程】

    根据提供的标题、描述和部分上下文内容,我们可以总结并生成以下与Oracle 10g PL/SQL编程相关的知识点: ### 一、Oracle 10g简介 Oracle 10g是Oracle公司推出的一个数据库管理系统,它标志着Oracle产品线的一个...

    利用Oracle PL_SQL Package实现Dispatcher设计模式 (1).pdf

    在Oracle PL/SQL中,这些处理函数可以是过程(Procedure)或者函数(Function)。它们需要根据不同的业务逻辑来编写,并确保它们能够正确处理相应类型的请求。 最后,连接消息ID和处理函数是将消息ID与对应的处理...

    oracle常见面试题及答案.pdf

    PACKAGE是一组FUNCTION和PROCEDURE的集合,用于完成一个商业功能。 3. 取某个序列的当前值的PL/SQL语句是什么? 答案:SELECT 序列名.CURRVAL FROM DUAL; 4. ORACLE数据库实例与ORACLE用户的关系是什么? 答案:...

    hibernate query调用oracle存储过程

    session.createNativeQuery("BEGIN YOUR_PACKAGE.YOUR_PROCEDURE; END;") .executeUpdate(); transaction.commit(); session.close(); ``` 如果存储过程或函数需要传入参数,我们可以这样处理: ```java String ...

Global site tag (gtag.js) - Google Analytics