表
card
cardno varchar2(20)
cardpassword varchar2(20)
cardstate varchar2(20)
这是过程create or replace procedure QUERYCARD
(p1 in varchar2,p2 in number,p3 out card.cardno%type,p4 out card.cardpassword%type)
as begin
select cardno,cardpassword into p3,p4 from card where cardstate = p1 and rownum = p2;
dbms_output.put_line(p3 || ' ' || p4);
end;
/这是调用declare
cardno card.cardno%type;
cardpassword card.cardpassword%type;
begin
QUERYCARD('1',2,cardno,cardpassword);
end;
/
怎么一直出不了结果?求救!急
card
cardno varchar2(20)
cardpassword varchar2(20)
cardstate varchar2(20)
这是过程create or replace procedure QUERYCARD
(p1 in varchar2,p2 in number,p3 out card.cardno%type,p4 out card.cardpassword%type)
as begin
select cardno,cardpassword into p3,p4 from card where cardstate = p1 and rownum = p2;
dbms_output.put_line(p3 || ' ' || p4);
end;
/这是调用declare
cardno card.cardno%type;
cardpassword card.cardpassword%type;
begin
QUERYCARD('1',2,cardno,cardpassword);
end;
/
怎么一直出不了结果?求救!急
变为 QUERYCARD('1',1,cardno,cardpassword);
编译通过了 另外end以后也可以不加过程的名字
create or replace procedure QUERYCARD
(p1 in varchar2,p2 in number)
as
p3 varchar2(20);
p4 varchar2(20);
begin
select cardno,cardpassword into p3,p4 from card where cardstate = p1 and rownum = p2;
dbms_output.put_line(p3 || ' ' || p4);
end;
/begin
QUERYCARD('1',1);
end;
/这样就通不过,
create or replace procedure QUERYCARD
--(p1 in varchar2,p2 in number)
as
p3 card.cardno%type;
p4 card.cardpassword%type;
begin
select cardno,cardpassword into p3,p4 from card where cardstate = '1' and rownum = 1;
dbms_output.put_line(p3 || ' '|| p4);
end;
/begin
QUERYCARD();
end;
/这样就通过了,
create or replace procedure QUERYCARD
(p1 in varchar2,p2 in number,p3 out card.cardno%type,p4 out card.cardpassword%type)
as begin
v_sql:='select cardno,cardpassword into p3,p4 from card where cardstate = p1 and rownum = p2;'
execute immediate v_sql;
commit;
dbms_output.put_line(p3 || ' ' || p4||' '||v_sql);
exception
dbms_output.put_line(v_sql);end;
/
下面这个出错的代码create or replace procedure QUERYCARD
(p1 in varchar2,p2 in number,p3 out card.cardno%type,p4 out card.cardpassword%type)
as begin
select cardno,cardpassword into p3,p4 from card where cardstate = p1 and rownum=p2;
dbms_output.put_line(p3 || ' ' || p4);
end;
/set serveroutput on
declare
p3 varchar2(20);
p4 varchar2(20);
begin
QUERYCARD('1',1,p3,p4);
end;
/下面这个是正确的 查的另一表的代码create or replace procedure empcaozuo3(para1 in varchar2,para4 number,para2 out varchar2,para3 out varchar2)
as
begin
select empno,deptno into para2,para3 from emp where empno=para1 and rownum=para4;
dbms_output.put_line(para2 || ' ' || para3);
end; set serveroutput on
declare
para2 varchar2(20);
para3 varchar2(20);
begin
empcaozuo3('1',1,para2,para3);
end;
/