从一个用户接受表数据
各位先进:
这样的存储过程如何写?oracle8.16
想实现:把表从一个用户导入到另一个用户
create or replace procedure FromYFSL(
p_year IN VARCHAR2 --输入年
) IS
v_user VARCHAR2(10); --依据年确定用户
v_cnt number:=0;
--利用游标变量
v_sql VARCHAR2 (4000);
TYPE curref IS REF CURSOR;
v_cur curref;
begin
v_user:='dw'||p_year;
--判断该用户是否存在,否则触发用户不存在异常
SELECT COUNT(*) INTO v_cnt FROM all_users t WHERE t.USERNAME =UPPER(v_user);
If v_cnt=1 THEN
--导入单位数据dwgk
v_sql:='SELECT * FROM '||v_user||'.DW';
EXECUTE IMMEDIATE 'DELETE FROM '||v_user||'.DW '; --clear dw
OPEN v_cur FOR v_sql;
LOOP
FETCH v_cur INTO v_dw;
EXIT WHEN v_cur%NOTFOUND;
//这样的sql语句好像不行耶,而且v_user.dw 也编译不过去,,
--插入单位值
INSERT INTO STUDY.DW(DM, DW, ZDB,Addr ,BDDH )
(select t.dm,
t.dw,
t.zdb,
t.addr,
t.bddh
from v_user.dw t);
END LOOP;
CLOSE v_cur;
END IF;
end;