小弟在编写一个procedure,主要是调用 为了改变表rpt_fadianliang中的dianliang 值 调用函数fun_getdlbyreading计算。
函数无错误 ,但是fun_getdlbyreading()有5个参数,最后一个参数 v_fadianliang 是指标名称,这个参数在
表 index_info.index_name中,无法直接取到,请问我在不想使用游标的情况下 如何能将 v_fadianliang传递进去。CREATE OR REPLACE PROCEDURE FCJH.p_insert_wangdiao3 (v_dt DATE)
IS
v_fadianliang index_info.index_name%TYPE;
v_error INT;
v_gaochangbian index_info.index_name%TYPE;
BEGIN --从游标中循环出machineset_id, index_name
v_error := 0; BEGIN
SELECT a.index_name --这个参数注入是错误的,返回多行
INTO v_fadianliang
FROM index_info a, rpt_fadianliang b
WHERE a.index_id = b.index_id AND b.create_date = v_dt; UPDATE rpt_fadianliang --循环修改dianliang
SET rpt_fadianliang.dianliang = --调用fun_getdlbyreading返回float的值
fun_getdlbyreading ('RPT_FADIANLIANG',
rpt_fadianliang.machineset_id,
v_dt,
rpt_fadianliang.reading2,
v_fadianliang ----------我该怎么传递个不在rpt_fadianliang的参数
)
WHERE create_date = v_dt;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
v_error := v_error + 1;
ROLLBACK;
END; BEGIN
SELECT a.index_name
INTO v_gaochangbian
FROM index_info a, rpt_gaochangbian b
WHERE a.index_id = b.index_id AND b.create_date = v_dt; UPDATE rpt_gaochangbian
--循环修改dianliang
SET rpt_gaochangbian.dianliang =
fun_getdlbyreading ('RPT_GAOCHANGBIAN',
--调用fun_getdlbyreading返回float的值
rpt_gaochangbian.machineset_id,
v_dt,
rpt_gaochangbian.reading2,
v_gaochangbian
)
WHERE create_date = v_dt; COMMIT;
EXCEPTION
WHEN OTHERS
THEN
v_error := v_error + 1;
ROLLBACK;
END;
END p_insert_wangdiao3;
函数无错误 ,但是fun_getdlbyreading()有5个参数,最后一个参数 v_fadianliang 是指标名称,这个参数在
表 index_info.index_name中,无法直接取到,请问我在不想使用游标的情况下 如何能将 v_fadianliang传递进去。CREATE OR REPLACE PROCEDURE FCJH.p_insert_wangdiao3 (v_dt DATE)
IS
v_fadianliang index_info.index_name%TYPE;
v_error INT;
v_gaochangbian index_info.index_name%TYPE;
BEGIN --从游标中循环出machineset_id, index_name
v_error := 0; BEGIN
SELECT a.index_name --这个参数注入是错误的,返回多行
INTO v_fadianliang
FROM index_info a, rpt_fadianliang b
WHERE a.index_id = b.index_id AND b.create_date = v_dt; UPDATE rpt_fadianliang --循环修改dianliang
SET rpt_fadianliang.dianliang = --调用fun_getdlbyreading返回float的值
fun_getdlbyreading ('RPT_FADIANLIANG',
rpt_fadianliang.machineset_id,
v_dt,
rpt_fadianliang.reading2,
v_fadianliang ----------我该怎么传递个不在rpt_fadianliang的参数
)
WHERE create_date = v_dt;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
v_error := v_error + 1;
ROLLBACK;
END; BEGIN
SELECT a.index_name
INTO v_gaochangbian
FROM index_info a, rpt_gaochangbian b
WHERE a.index_id = b.index_id AND b.create_date = v_dt; UPDATE rpt_gaochangbian
--循环修改dianliang
SET rpt_gaochangbian.dianliang =
fun_getdlbyreading ('RPT_GAOCHANGBIAN',
--调用fun_getdlbyreading返回float的值
rpt_gaochangbian.machineset_id,
v_dt,
rpt_gaochangbian.reading2,
v_gaochangbian
)
WHERE create_date = v_dt; COMMIT;
EXCEPTION
WHEN OTHERS
THEN
v_error := v_error + 1;
ROLLBACK;
END;
END p_insert_wangdiao3;
解决方案 »
- 十万火急!求助oracle 9i 回闪查询的问题,在此先致谢!
- dataguard相关的几个问题
- 求一条oracle 检索数据库表中新插入的数据【优化查询】
- 求oracle入门基础教程
- 带你感受不一样的备份恢复理论!
- 求救,一个oracle上sql的怪现象,高手帮忙解决一下,感谢啦~
- 如何实现两台电脑中相同数据库的实时同步?(100分)
- oracle中方案的名称保存在那个视图中?
- 为什么隔几天不重起服务器,Oracle就会突然间自己连不上了?它会报出ora-12500 的错误。请教大家
- 安装时输入的数据库名和密码都忘了怎么办?
- oracle大对象(Blob,Clob)操作的问题
- 求救!如何删除数据库表空间同时删除数据文件
并返回一个值。
我那个函数确实是返回一个float值。
请问谁有办法能帮我把红色部分 完成。 不用游标 谢谢