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.并为package定义对应的属性(全局变量)和方法(function,procedure). package的全局变量在oracle编程过程中有很多有趣并非常实用的作用.比如,我们可以利用...
pl/sql中oracle的函数,过程,包,事务等介绍
大型项目Oracle sql,function,procedures,package,cursor学习参考
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...
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 常用命令举例 标题 基本语法 %type用法,%rowtype用法,TYPE用法 游标的使用 for 循环 loop循环 while循环 if / else 的用法 case 的用法 标题 错误定义 error的设定 exception用法 ...
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 包的基本结构 ...
Not Using Commons Logging ................................................................... 12 Using SLF4J ..............................................................................................
Oracle P/L SQL实现文件压缩、解压功能,以下是此过程包的头部,包体经常打包处理plb,感兴趣用户可以下载下来。 Create or Replace Package UTL_ZIP AUTHID CURRENT_USER as Type File_List is Table of Clob; -...
oracle创建对象:procedure,index,view,function,trigger,sequence,package,type,table,cursor,job
本文是由笔者2012年学习oracle数据库时编写的学习札记,其中的题目 多数为老师留下的思考题目。 我相信本文会对初学者使用oracle有一个初步的使用印象。右图为我所参 考的书籍。 目录 第一讲 Oacle关系数据库 ...
Not Using Commons Logging ................................................................... 12 Using SLF4J ..............................................................................................
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
支持 PL/SQL 语句(包括 Procedure、 Function、Trigger、 Package),能够显示 DBMS_OUPTPUT.PUT_LINE 的输出;能够给出错误信息,甚至光标能够精确定位错误所在的行列位置,方便于调试 多线程、多连接:可以创建...
<9> 全面支持 PL/SQL(包括 Procedure、 Function、Trigger、 Package), 能够显示 DBMS_OUPTPUT.PUT_LINE 的输出;能够给出错误信息,甚至光标能够精确定位错误所在的行列位置,极大地方便于调试 <10> 提供对常用...
支持 PL/SQL 语句(包括 Procedure、 Function、Trigger、 Package),能够显示 DBMS_OUPTPUT.PUT_LINE 的输出;能够给出错误信息,甚至光标能够精确定位错误所在的行列位置,方便于调试 o 多线程、多连接:可以...
> 可以用screen editor做成PROCEDURE、FUNCTION等存储过程并进行编辑。 >还可以使用强有力的debug环境。具备以下功能:指出编译错误的发生场所、可以输入参数的执行窗口、显示执行时的错误、对应DBMS-OUTPUT Package...
第二种情况,当会话1(session 1)在修改一个package,与此同时还有另一个会话,我们姑且称之为会话2(session 2),这个会话2正在执行会话1所修改的package中的Procedure或者Function,会话1就会hang住,这时,你...
支持 PL/SQL 语句(包括 Procedure、 Function、Trigger、 Package),能够显示 DBMS_OUPTPUT.PUT_LINE 的输出;能够给出错误信息,甚至光标能够精确定位错误所在的行 列位置,方便于调试 多线程、多连接:可以创建...
64位版本的 PLSQL 正式版,只能运行在64位系统中,需要你安装 64 位的 Oracle 客户端。 安装请查看说明。 MAY 27, 2022 - VERSION 15.0.1 RELEASED Enhancements Stability improvements Difference Viewer ...