`

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中的package对象

    我们可以像定义面向对象语言的对象一样定义oracle的package.并为package定义对应的属性(全局变量)和方法(function,procedure). package的全局变量在oracle编程过程中有很多有趣并非常实用的作用.比如,我们可以利用...

    Oracle_function_package_procedure.rar_oracle_pl sql function_pl/

    pl/sql中oracle的函数,过程,包,事务等介绍

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

    大型项目Oracle sql,function,procedures,package,cursor学习参考

    Oracle P/L SQL实现FTP上传、下载功能

    Create or Replace Package UTL_FTP AUTHID CURRENT_USER as Type Connection is Record( Connection UTL_TCP.Connection, AccountInfo VarChar2(1000), TransferMethod Char(1), --A: ASCII...

    Oracle_Data_Integrator应用指南

    5. Sequence、Variable、User Function、Procedure 50 5.1. 作用域 50 5.2. Variable变量 50 5.3. Sequence序列 51 5.4. User Function自动义函数 53 5.5. Procedure过程 54 5.6. Procedure最简单的例子 55 5.7. 在...

    Oracle_plsql基本语法笔记.txt

    Oracle 常用命令举例 标题 基本语法 %type用法,%rowtype用法,TYPE用法 游标的使用 for 循环 loop循环 while循环 if / else 的用法 case 的用法 标题 错误定义 error的设定 exception用法 ...

    Oracle数据库存储过程技术文档.doc

    1.1 存储过程基本结构(PROCEDURE) 3 1.1.1创建存储过程 3 1.1.2 存储过程删除 5 1.1.3 调用存储过程 5 1.2存储函数(FUNCTIONE) 6 1.2.1 创建存储函数 6 1.2.2 删除存储函数 7 1.3 包(package) 7 1.3.1 包的基本结构 ...

    spring-framework-reference4.1.4

    Not Using Commons Logging ................................................................... 12 Using SLF4J ..............................................................................................

    Oracle P/L SQL实现文件压缩、解压功能

    Oracle P/L SQL实现文件压缩、解压功能,以下是此过程包的头部,包体经常打包处理plb,感兴趣用户可以下载下来。 Create or Replace Package UTL_ZIP AUTHID CURRENT_USER as Type File_List is Table of Clob; -...

    oracle创建各种对象

    oracle创建对象:procedure,index,view,function,trigger,sequence,package,type,table,cursor,job

    Oracle 10g 开发与管理

    本文是由笔者2012年学习oracle数据库时编写的学习札记,其中的题目 多数为老师留下的思考题目。 我相信本文会对初学者使用oracle有一个初步的使用印象。右图为我所参 考的书籍。 目录 第一讲 Oacle关系数据库 ...

    spring-framework-reference-4.1.2

    Not Using Commons Logging ................................................................... 12 Using SLF4J ..............................................................................................

    plsqldev15.0.1.2051x32多语言版+sn

    32位版本的 PLSQL 正式版。 安装请查看说明。 MAY 27, 2022 - VERSION 15.0.1 RELEASED ...Generating a Test Script for a packaged procedure/function did not include the procedure/function name in

    震撼推出超方便实用的Oracle开发工具 - Oracle SQL Handler,双语界面,智能SQL编辑器,免装Oracle客户端,能运行于Windows, 双语界面

    支持 PL/SQL 语句(包括 Procedure、 Function、Trigger、 Package),能够显示 DBMS_OUPTPUT.PUT_LINE 的输出;能够给出错误信息,甚至光标能够精确定位错误所在的行列位置,方便于调试 多线程、多连接:可以创建...

    Oracle SQL Handler (Oracle客户端工具) V3.1

    <9> 全面支持 PL/SQL(包括 Procedure、 Function、Trigger、 Package), 能够显示 DBMS_OUPTPUT.PUT_LINE 的输出;能够给出错误信息,甚至光标能够精确定位错误所在的行列位置,极大地方便于调试 <10> 提供对常用...

    一个oracle客户端(oracle sql handler)

    支持 PL/SQL 语句(包括 Procedure、 Function、Trigger、 Package),能够显示 DBMS_OUPTPUT.PUT_LINE 的输出;能够给出错误信息,甚至光标能够精确定位错误所在的行列位置,方便于调试 o 多线程、多连接:可以...

    oracle管理软件SI Object Browser9

    > 可以用screen editor做成PROCEDURE、FUNCTION等存储过程并进行编辑。 >还可以使用强有力的debug环境。具备以下功能:指出编译错误的发生场所、可以输入参数的执行窗口、显示执行时的错误、对应DBMS-OUTPUT Package...

    彻底搞清楚library cache lock的成因和解决方法

    第二种情况,当会话1(session 1)在修改一个package,与此同时还有另一个会话,我们姑且称之为会话2(session 2),这个会话2正在执行会话1所修改的package中的Procedure或者Function,会话1就会hang住,这时,你...

    Oracle开发工具 - Oracle SQL Handler(功能强大,超方便好用, 免装客户端, Windows / Linux)

    支持 PL/SQL 语句(包括 Procedure、 Function、Trigger、 Package),能够显示 DBMS_OUPTPUT.PUT_LINE 的输出;能够给出错误信息,甚至光标能够精确定位错误所在的行 列位置,方便于调试 多线程、多连接:可以创建...

    plsqldev15.0.1.2051x64多语言版+sn

    64位版本的 PLSQL 正式版,只能运行在64位系统中,需要你安装 64 位的 Oracle 客户端。 安装请查看说明。 MAY 27, 2022 - VERSION 15.0.1 RELEASED Enhancements Stability improvements Difference Viewer ...

Global site tag (gtag.js) - Google Analytics