我要在存储过程里比较两个字符串是否相等 s1=name AND s2=word
可以这样写么?? 为什么出错呢
可以这样写么?? 为什么出错呢
解决方案 »
- 一个sql查询问题 oracle
- 求助!!我的Oracle怎么装不上???
- oracle数据库创建触发器错误
- 在jbuilder中引用oracle.sql.*,oracle.jdbc.*有问题????
- 我写了一个判断字段非空的trigger,觉得有问题,帮忙看一下
- 为什么v$log中的GROUP#值是##########?
- Windows下面使用OCCI报错(error C2995),请各位大侠帮忙!紧急!!
- group by 语句中的sequence 问题?
- 关于 select sample语句的效率
- win7 64 oracle 11g 在官网上下载的两个文件,一起解压时有相同文件需要替换,然后安装到database assissant时出错了!
- 关于orecle的一个小问题
- 求oracle10G SQL语句 查询当前所用库和表
对啊!Oracle比较字符串没错,肯定是别的哪里出错了!
SQL> declare
2 s1 varchar2(100);
3 s2 varchar2(100);
4 name varchar2(100);
5 word varchar2(100);
6 begin
7 s1 := 'hello';
8 s2 := 'name';
9 name := 'hello';
10 word := 'name';
11 if s1=name and s2=word then
12 dbms_output.put_line('ok');
13 else
14 dbms_output.put_line('error');
15 end if;
16 end
17 ;
18 /
okPL/SQL 过程已成功完成。SQL> ed
已写入 file afiedt.buf 1 declare
2 s1 varchar2(100);
3 s2 varchar2(100);
4 name varchar2(100);
5 word varchar2(100);
6 begin
7 s1 := 'hello';
8 s2 := 'name';
9 name := 'hello';
10 word := 'name1';
11 if s1=name and s2=word then
12 dbms_output.put_line('ok');
13 else
14 dbms_output.put_line('error');
15 end if;
16 end
17* ;
SQL> /
errorPL/SQL 过程已成功完成。
s1 varchar(30);
s2 varchar(30);
S3 char(10);
CURSOR cur IS
SELECT username,password,acces FROM UserLog;
BEGIN
OPEN cur;
FETCH cur INTO s1,s2,s3;
LOOP
IF s1=name AND s2=word THEN
acce:=s3;
res:=1; return;EXIT;
ELSE
IF s1=name AND s2!=word THEN
res:=-1; acce:='';END IF;return;EXIT;
END IF;
res:=0; acce:='';return;EXIT;
IF cur%NOTFOUND THEN EXIT;
END IF;
END LOOP;
CLOSE cur;
END;创建成功了 我在java里面调用的 时候 传入相同字符串
但是 返回值res =0;有没有会调试存储过程的 帮忙看看问题出在什么地方??
不胜感激!!
CREATE OR REPLACE PROCEDURE MyLog(name IN varchar,word IN varchar,res OUT int,acce OUT char) IS
s1 varchar(30);
s2 varchar(30);
S3 char(10);
CURSOR cur IS
SELECT username,password,acces FROM UserLog;
BEGIN
OPEN cur;
FETCH cur INTO s1,s2,s3;
LOOP
exit when cur%notfound;
IF s1=name AND s2=word THEN
acce:=s3;
res:=1;
return;
exit;
end if;
IF s1=name AND s2!=word THEN
res:=-1; acce:='';
return;
exit;
END IF;
END LOOP;
CLOSE cur;
res:=0; acce:='';
return;
END;
SQL> insert into UserLog values('zxf','ddd','dddd');已创建 1 行。SQL> commit;提交完成。SQL> declare
2 res varchar2(10);
3 acces varchar2(10);
4 begin
5 mylog('zxf','ddd',res,acces);
6 dbms_output.put_line(res||' '||acces);
7 end;
8 /
1 ddddPL/SQL 过程已成功完成。SQL> declare
2 res varchar2(10);
3 acces varchar2(10);
4 begin
5 mylog('zxf','ddd33',res,acces);
6 dbms_output.put_line(res||' '||acces);
7 end;
8 /
-1PL/SQL 过程已成功完成。
2 s1 varchar2(100);
3 s2 varchar2(100);
4 name varchar2(100);
5 word varchar2(100);
6 begin
7 s1 := 'hello';
8 s2 := 'name';
9 name := 'hello';
10 word := 'name';
11 if s1=name and s2=word then
12 dbms_output.put_line('ok');
13 else
14 dbms_output.put_line('error');
15 end if;
16 end
17 ;
18 /