数据库高手们,早上好,现在我遇到了这样一个问题,我现在要从oracle数据库A里执行存储过程调用Oracle数据库B里的表Info里的数据,现在我配置了本地数据库服务器的tnsnames.ora文件,创建的 database link名为 test
我用 普通的语句,select * from Info@test 可以从数据库B里查询得到表info的信息,
但是我用存储过程
create proc GetVehicleInfo
AS
select * from Info@test
却得不到信息。能高手我为什么么?
我用 普通的语句,select * from Info@test 可以从数据库B里查询得到表info的信息,
但是我用存储过程
create proc GetVehicleInfo
AS
select * from Info@test
却得不到信息。能高手我为什么么?
解决方案 »
- oracle以前的数据怎么导入到现在的oracle中
- 关于oracle的数据导入问题,百分求助
- 跪求大神帮忙看下包,运行速度太慢
- 一个高难度update 两表关联,多个更新,复杂的计算,是不是无高效之解???,高手请进!!!
- ORA-24314: service handle not initialized 数据库服务器启动不了,求救!
- 问个傻瓜问题,我是刚刚安装的oracle,如何登入???
- 请教:在本地计算机无法启动OracleOraHome92TNSListener服务,怎么办?
- 寻求SELECT的写法?
- 关于tord。请大家帮忙。等答案
- 执行存储过程参数
- connect by展开BOM问题
- 急!关于表内字段名映射后建view的问题
如何在oracle存储过程中返回查询结果集
(
p_cursor_log in out system.pkg_hd_user.user_rc_type
)
/*取得所有日志信息*/
as
begin
open p_cursor_log for
select iLogID,cUserAccount,cDescription,cLoginIP,dLoginDate,dLsatUP,iDel
from HD_Log
where
/*当iDel为1时为显示,为0表示已经删除*/
iDel=1;
end pro_hd_select_log;
create proc GetVehicleInfo (rs OUT sys_refcursor)
AS
BEGIN
OPEN rs FOR 'select * from Info@test';
END;
/DECLARE
ref_cur sys_refcursor;
rs test%rowtype;
BEGIN
GetVehicleInfo(ref_cur);
LOOP
FETCH ref_cur INTO rs ;
EXIT WHEN ref_cur%NOTFOUND;
Dbms_Output.put_line(rs.ename);
END LOOP;
CLOSE ref_cur;
END;
create procedure GetVehicleInfo (rs OUT sys_refcursor)
AS
BEGIN
OPEN rs FOR 'select * from Info@test';
END;我的测试案例:CREATE PROCEDURE GetVehicleInfo (rs out sys_refcursor)
AS
BEGIN
OPEN rs FOR 'select * from emp where rownum=1';
END;
/
DECLARE
rs sys_refcursor;
rs_test emp%rowtype;
BEGIN
GetVehicleInfo(rs);
LOOP
FETCH rs INTO rs_test ;
EXIT WHEN rs%NOTFOUND;
Dbms_Output.put_line('NAME='||rs_test.ename);
END LOOP;
END;
/结果:47 PL/SQL block, executed in 0 sec.
NAME=SMITH
Total execution time 0.016 sec.