create or replace package user_manage
as
procedure query_utbs;
procedure ins_utbs(vid number,vname utbs.username%type,vpwd utbs.userpwd%type);
procedure del_utbs(vid number);
procedure upd_utbs(vid number);
function user_logo(vname utbs.username%type,vpwd utbs.userpwd%type) return number;
end user_manage;create or replace package body user_manage
as
procedure query_utbs
as
vid number;
vname utbs_username%type;
vpwd utbs_userpwd%type;
cursor mycursor is
select * from utbs;
begin
open mycursor;
fetch mycursor into vid,vname,vpwd;
while mycursor%found
loop
dbms_output.put_line(vid||vname||vpwd);
fetch mycursor into vid ,vname,vpwd;
end loop;
close mycursor;
end;
procedure ins_utbs(vid number,vname utbs.username%type,vpwd utbs.userpwd%type)
as
begin
insert into utbs (userid,username,userpwd) values (vid,viname,vipwd);
end;
procedure del_utbs(vid number)
as
begin
delete from utbs where userid=vid;
end;
procedure upd_utbs(vid number)
as
begin
update utbs set userpwd='qwerrqwer' where userid=vid;
end;
function user_logo(vname utbs.username%type,vpwd utbs.userpwd%type) return number
as
outyanzheng number :=0;
cursor mycursor is select * from utbs where username=vname and userpwd=vpwd;
begin
open mycursor;
if mycursor%found=ture then outyanzheng:=1;
end if;
close mycursor;
return outyanzheng;
end;
end user_manage;不知道哪里错了
--试试改下吧
create or replace package body user_manage
as
procedure query_utbs
as
v_utbs utbs%rowtype; --不需要那么多的变量
cursor mycursor is select * from utbs;
begin
open mycursor;
fetch mycursor into vid,vname,vpwd;
while mycursor%found
loop
dbms_output.put_line(v_utbs.id||v_utbs.name||v_utbs.pwd);
fetch mycursor into vid ,vname,vpwd;
end loop;
close mycursor;
end;
procedure ins_utbs(vid number,vname utbs.username%type,vpwd utbs.userpwd%type)
as
begin
insert into utbs (userid,username,userpwd) values (vid,viname,vipwd);
end;
procedure del_utbs(vid number)
as
begin
delete from utbs where userid=vid;
end;
procedure upd_utbs(vid number)
as
begin
update utbs set userpwd='qwerrqwer' where userid=vid;
end;
function user_logo(vname utbs.username%type,vpwd utbs.userpwd%type) return number
as
outyanzheng number :=0;
cursor mycursor is select * from utbs where username=vname and userpwd=vpwd;
begin
open mycursor;
if mycursor%found then outyanzheng:=1; --mycursor%found=true这样是不对的
end if;
close mycursor;
return outyanzheng;
end;
end user_manage;
Line # = 9 Column # = 1 Error Text = PL/SQL: SQL Statement ignored
Line # = 12 Column # = 29 Error Text = PLS-00302: component 'ID' must be declared
Line # = 12 Column # = 1 Error Text = PL/SQL: Statement ignored
Line # = 13 Column # = 21 Error Text = PLS-00201: identifier 'VID' must be declared
Line # = 13 Column # = 1 Error Text = PL/SQL: SQL Statement ignored
Line # = 20 Column # = 63 Error Text = PL/SQL: ORA-00984: column not allowed here
Line # = 20 Column # = 1 Error Text = PL/SQL: SQL Statement ignored
vname utbs_username%type;
vpwd utbs_userpwd%type;--这样
vname utbs.username%type;
vpwd utbs.userpwd%type;
if mycursor%found then outyanzheng:=1;
mycursor%found=true 这样都可以
create or replace package body user_manage
as
procedure query_utbs
as
v_utbs utbs%rowtype; --不需要那么多的变量
cursor mycursor is select * from utbs;
begin
open mycursor;
fetch mycursor into v_utbs; --这个忘了改了
while mycursor%found
loop
dbms_output.put_line(v_utbs.userid||v_utbs.username||v_utbs.userpwd);
-- 这个id、name、pwd就是v_utbs的列名
fetch mycursor into v_utbs;
end loop;
close mycursor;
end;
procedure ins_utbs(vid number,vname utbs.username%type,vpwd utbs.userpwd%type)
as
begin
insert into utbs (userid,username,userpwd) values (vid,vname,vpwd);
--你的插入语句中变量写错了
end;
procedure del_utbs(vid number)
as
begin
delete from utbs where userid=vid;
end;
procedure upd_utbs(vid number)
as
begin
update utbs set userpwd='qwerrqwer' where userid=vid;
end;
function user_logo(vname utbs.username%type,vpwd utbs.userpwd%type) return number
as
outyanzheng number :=0;
cursor mycursor is select * from utbs where username=vname and userpwd=vpwd;
begin
open mycursor;
if mycursor%found then outyanzheng:=1; --mycursor%found=true这样是不对的
end if;
close mycursor;
return outyanzheng;
end;
end user_manage;
PROCEDURE query_utbs;
PROCEDURE ins_utbs(vid NUMBER, vname utbs.username%TYPE, vpwd utbs.userpwd%TYPE);
PROCEDURE del_utbs(vid NUMBER);
PROCEDURE upd_utbs(vid NUMBER);
FUNCTION user_logo(vname utbs.username%TYPE, vpwd utbs.userpwd%TYPE) RETURN NUMBER;
END user_manage;
/CREATE OR REPLACE PACKAGE BODY user_manage AS
PROCEDURE query_utbs AS
vid NUMBER;
vname utbs.username%TYPE;--自己对照一下
vpwd utbs.userpwd%TYPE;--自己对照一下
CURSOR mycursor IS
SELECT * FROM utbs;
BEGIN
OPEN mycursor;
FETCH mycursor
INTO vid, vname, vpwd;
WHILE mycursor%FOUND LOOP
dbms_output.put_line(vid || vname || vpwd);
FETCH mycursor
INTO vid, vname, vpwd;
END LOOP;
CLOSE mycursor;
END; PROCEDURE ins_utbs(vid NUMBER, vname utbs.username%TYPE, vpwd utbs.userpwd%TYPE) AS
BEGIN
INSERT INTO utbs (userid, username, userpwd) VALUES (vid, vname, vpwd);--自己对照一下
END; PROCEDURE del_utbs(vid NUMBER) AS
BEGIN
DELETE FROM utbs WHERE userid = vid;
END; PROCEDURE upd_utbs(vid NUMBER) AS
BEGIN
UPDATE utbs SET userpwd = 'qwerrqwer' WHERE userid = vid;
END; FUNCTION user_logo(vname utbs.username%TYPE, vpwd utbs.userpwd%TYPE) RETURN NUMBER AS
outyanzheng NUMBER := 0;
CURSOR mycursor IS
SELECT *
FROM utbs
WHERE username = vname AND
userpwd = vpwd;
BEGIN
OPEN mycursor;
IF mycursor%FOUND THEN --自己对照一下
outyanzheng := 1;
END IF;
CLOSE mycursor;
RETURN outyanzheng;
END;
END user_manage;
/
mycursor%found=true 这样都可以
SQL> ed
已写入 file afiedt.buf 1 declare
2 v_COL1 number;
3 cursor c1 is select COL1 from test1;
4 num number:=0;
5 begin
6 open c1;
7 fetch c1 into v_COL1;
8 if c1%found=true then
9 num:=1;
10 end if;
11 dbms_output.put_line(num);
12* end;
SQL> /
1PL/SQL 过程已成功完成。SQL> ed
已写入 file afiedt.buf 1 declare
2 v_COL1 number;
3 cursor c1 is select COL1 from test1;
4 num number:=0;
5 begin
6 open c1;
7 fetch c1 into v_COL1;
8 if c1%found then
9 num:=1;
10 end if;
11 dbms_output.put_line(num);
12* end;
SQL> /
1PL/SQL 过程已成功完成。