刚用存储过程,此存储过程错误,请指正

wangjingyue 2005-12-11 11:29:19
CREATE OR REPLACE PROCEDURE PROC_USER_DEP (
in_user_id in VARCHAR2,
in_user_pwd in VARCHAR2,
out_node_id out VARCHAR2,
out_tree_pk out VARCHAR2,
out_id out VARCHAR2)
AS
BEGIN
select t1.node_id,
t1.TREE_PK
t2.id into out_id
from HBGH_PUB_TREE t1 ,
(
select id from Hbgh_User_Info where User_Uid='0311admin' and user_pwd='admin'
) t2
where t1.node_id =
(
select substr(PURVIEWID,1,instr(PURVIEWID,';')-1) powerid from Hbgh_User_Info
where User_Uid='0311admin' and user_pwd='admin'
) ;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS THEN
-- Consider logging the error and then re-raise
RAISE;
END PROC_USER_DEP;
...全文
199 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
FlyNesta 2005-12-19
  • 打赏
  • 举报
回复
CREATE OR REPLACE PROCEDURE PROC_USER_DEP (
in_user_id in VARCHAR2,
in_user_pwd in VARCHAR2,
out_node_id out VARCHAR2,
out_tree_pk out VARCHAR2,
out_id out VARCHAR2)
AS
BEGIN
select t1.node_id,
t1.TREE_PK
t2.id into out_id, out_tree_pk, out_id
from HBGH_PUB_TREE t1 ,
(
select id from Hbgh_User_Info where User_Uid='0311admin' and user_pwd='admin'
) t2
where t1.node_id =
(
select substr(PURVIEWID,1,instr(PURVIEWID,';')-1) powerid from Hbgh_User_Info
where User_Uid='0311admin' and user_pwd='admin'
) ;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS THEN
-- Consider logging the error and then re-raise
RAISE;
END PROC_USER_DEP;
wangjingyue 2005-12-17
  • 打赏
  • 举报
回复
各位,写好可以用,专家分50分马上就给了,如果明白,就写上
软侠 2005-12-14
  • 打赏
  • 举报
回复
關注中!
zwm1988 2005-12-13
  • 打赏
  • 举报
回复
用游标吧
grica 2005-12-11
  • 打赏
  • 举报
回复
在存储过程得主体部分,select语句必须将其选出的值赋给一个变量
你增加into ……就好了
wangjingyue 2005-12-11
  • 打赏
  • 举报
回复
更正:select t1.node_id into out_node_id ,t1.TREE_PK into t2.id ,t2.id into out_id

问题: 返回是一个记录集,怎么获取一个字段时不报错,如果一起查询几个字段存储过程不能编译
wangjingyue 2005-12-11
  • 打赏
  • 举报
回复
谢谢各位!
本处肯定肯定只有单条记录,但是我想要得到几个字段的值,麻烦哪为高手给写出来,比如现在我只有一条记录,但是我需要得到这条记录所包含的字段一,字段二....等等,我上面写的Procedure也是想达到这个目的,请哪为高手直接给我写出来.
谢谢!
grica 2005-12-11
  • 打赏
  • 举报
回复
早晨没看太清楚,不好意思

如果select取出来的只是单条记录就可以这样用
如果是多条记录就只能赋给数组了
超叔csdn 2005-12-11
  • 打赏
  • 举报
回复
用SELECT INTO只能赋一条值啊.
你想赋两条肯定会报错.
建议用SELECT COUNT(*) INTO...做条数判断,再进行赋值处理.
wangjingyue 2005-12-11
  • 打赏
  • 举报
回复
CREATE OR REPLACE PROCEDURE PROC_USER_DEP (
in_user_id in VARCHAR2,
in_user_pwd in VARCHAR2,
out_node_id out VARCHAR2,
out_tree_pk out VARCHAR2,
out_id out VARCHAR2)
AS
BEGIN
select
//说明
//in_user_id in VARCHAR2 输入参数
//in_user_pwd in VARCHAR2 输入参数
//out_node_id 输出参数
//out_tree_pk 输出参数
//out_id 输出参数
//从DB中获取t1.node_id,t1.TREE_PK,t2.id然后分别附值,
///////////////////////////////////////////////
//问题:一条数据可以,第二条数据开始就报错///////
////////////////////////////////////////////////
t1.node_id into out_node_id,
t1.TREE_PK into out_tree_pk,
t2.id into out_id

from HBGH_PUB_TREE t1 ,
(
select id from Hbgh_User_Info where User_Uid='0311admin' and user_pwd='admin'
) t2
where t1.node_id =
(
select substr(PURVIEWID,1,instr(PURVIEWID,';')-1) powerid from Hbgh_User_Info
where User_Uid='0311admin' and user_pwd='admin'
) ;

EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS THEN
-- Consider logging the error and then re-raise
RAISE;
END PROC_USER_DEP;
/
ab5669 2005-12-11
  • 打赏
  • 举报
回复
CREATE OR REPLACE PROCEDURE PROC_USER_DEP (
in_user_id in VARCHAR2,
in_user_pwd in VARCHAR2,
out_node_id out VARCHAR2,
out_tree_pk out VARCHAR2,
out_id out VARCHAR2)
AS
BEGIN
select t1.node_id, t1.TREE_PK , t2.id into out_node_id ,out_tree_pk ,out_id
from HBGH_PUB_TREE t1 ,
(
select id from Hbgh_User_Info where User_Uid='0311admin' and user_pwd='admin'
) t2
where t1.node_id =
(
select substr(PURVIEWID,1,instr(PURVIEWID,';')-1) powerid from Hbgh_User_Info
where User_Uid='0311admin' and user_pwd='admin'
) ;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS THEN
-- Consider logging the error and then re-raise
RAISE;
END PROC_USER_DEP;

注意: 要确保查询的结果集只有一条记录
超叔csdn 2005-12-11
  • 打赏
  • 举报
回复
select t1.node_id,t1.TREE_PK,t2.id into out_node_id ,t2.id ,out_id

这是正常写法,但你的后面的T2.ID能不能用别的变量?

17,078

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧