首页 新闻 赞助 找找看

求看大神看下 oracle 存储过程 感激不尽

0
悬赏园豆:10 [已关闭问题] 关闭于 2016-11-28 09:52

准备在java中调用 用游标返回的存储过程 这个在pl/sql中显示这个存储过程是有问题的,begin中的sql语句 拿出来是可以以用的 只不过放在存储过程里面时候是把 固定的值 换成了参数 不知道哪里错了,希望大神帮看看

CREATE OR REPLACE PACKAGE TOLL_PATH_PACKAGE IS
--动态游标
TYPE REFCURSOR IS REF CURSOR;
END TOLL_PATH_PACKAGE;

CREATE OR REPLACE PROCEDURE TOLL_PATH_LENGTH AS
(

CUR_RET OUT TOLL_PATH_PACKAGE.REFCURSOR,
IN_LINK IN NUMBER, --起始
OUT_LINK IN NUMBER --目的
)
IS
BEGIN
OPEN CUR_RET FOR
with T (LINK_PID,S_NODE_PID,E_NODE_PID,tollpath,LENGTH,lvl) as (
select LINK_PID,
S_NODE_PID,
E_NODE_PID,
'/'||LINK_PID as tollpath,
LENGTH,
1 as lvl
from rd_link123
where LINK_PID = IN_LINK --起始
union all
select r.link_pid,
r.s_node_pid,
r.e_node_pid,
t.tollpath||'/'||r.link_pid,
t.length + r.length,
t.lvl + 1
from t,rd_link123 r
where r.s_node_pid = t.e_node_pid
and IN_LINK<> r.e_node_pid --不能转回来
and t.link_pid <>OUT_LINK --目的地
and lvl <400
and instr(t.tollpath,'/'||r.link_pid)=0
)
select t.link_pid,to_clob(t.tollpath||'/') path,t.length 
from T where LINK_PID=OUT_LINK;
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line('出错了');
END TOLL_PATH_LENGTH;

小阿东的主页 小阿东 | 初学一级 | 园豆:194
提问于:2016-11-26 12:50
< >
分享
所有回答(1)
0

原来是 语法错误 多了个as 困扰了一天,最后一个师兄帮忙看出来的,学习习惯不好,吸取教训吧。

小阿东 | 园豆:194 (初学一级) | 2016-11-28 09:51
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册