--我要写一个查询用户表存储过程,性别是我要输入的参数
CREATE PROCEDURE selUser
@SEX varchar(5)
AS
begin
select * from UserInfo where sex=@SEX;
end;--SQLServer调用
exec selUser '男'1:请问这2步在Oracle中怎么写?
2:特别是在建过程的时候它总提示 select 没有 into 什么的,这是为什么?
CREATE PROCEDURE selUser
@SEX varchar(5)
AS
begin
select * from UserInfo where sex=@SEX;
end;--SQLServer调用
exec selUser '男'1:请问这2步在Oracle中怎么写?
2:特别是在建过程的时候它总提示 select 没有 into 什么的,这是为什么?
(
p_SEX IN VARCHAR2(5)
)
AS
r_USERINFO UserInfo%ROWTYPE;
BEGIN
SELECT * INTO r_USERINFO WHERE SEX=p_SEX AND ROWNUM=1;
-- 如果需要打印字段在下面添加
--DBMS_OUTPUT.PUT_LINE();
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(SUBSTR('ERROR:'||SQLERRM,1,255));
END SELUSER;在sqlplus里调用:
exec SELUSER('男');该例子为返回一条记录,如果你要返回记录集,需要适当的修改下
as
type type_cur is ref cursor; --定义游标变量用于返回记录集
procedure return_list(
v_gender varchar2,
cur_out out type_cur
);
end pck_test;
/
create or replace package body pck_test
as
procedure return_list(
v_gender varchar2,
cur_out out type_cur
)
as
begin
open cur_out for
select * from UserInfo where sex=v_gender;
end;
end pck_test;
/
不是在后台打印。谢谢!
多谢你!我想你的答案应该可以!我想问一下你,这个不能直接用存储过程吗?
我看到很多程序都用包,用包有什么好处不?
好人做到底吧!1:我在 PLSQL Developer 怎么调用?
begin
pck_test.return_list('a',这里我不知道填写什么);
end;2:在java中怎么调用呢?java可以取游标吗?谢谢!有没有QQ请加我 99804335