提示表名无效,INSERT INTO 执行不了怎么办_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
15
每页帖数
102/2页12
返回列表
0
发起投票  发起投票 发新帖子
查看: 3317 | 回复: 14   主题: 提示表名无效,INSERT INTO 执行不了怎么办        下一篇 
wddd
注册用户
等级:列兵
经验:111
发帖:1
精华:0
注册:2015-6-1
状态:离线
发送短消息息给wddd 加好友    发送短消息息给wddd 发消息
发表于: IP:您无权察看 2015-6-1 11:04:12 | [全部帖] [楼主帖] 11  楼

北京联动北方科技有限公司


赞(0)    操作        顶端 
wddd
注册用户
等级:列兵
经验:111
发帖:1
精华:0
注册:2015-6-1
状态:离线
发送短消息息给wddd 加好友    发送短消息息给wddd 发消息
发表于: IP:您无权察看 2015-6-1 11:05:51 | [全部帖] [楼主帖] 12  楼

北京联动北方科技有限公司



赞(0)    操作        顶端 
青草繁星
注册用户
等级:少校
经验:951
发帖:9
精华:0
注册:2015-3-30
状态:离线
发送短消息息给青草繁星 加好友    发送短消息息给青草繁星 发消息
发表于: IP:您无权察看 2015-6-1 11:06:25 | [全部帖] [楼主帖] 13  楼


把他写成动态的 你定义个v_sql 是干什么的?调试的时候把 v_sql 打印出来下不就好了吗?你把语句发出来我来改



赞(0)    操作        顶端 
wddd
注册用户
等级:列兵
经验:111
发帖:1
精华:0
注册:2015-6-1
状态:离线
发送短消息息给wddd 加好友    发送短消息息给wddd 发消息
发表于: IP:您无权察看 2015-6-1 11:06:57 | [全部帖] [楼主帖] 14  楼

[qaote=引用12楼wddd的回复
把他写成动态的 你定义个v_sql 是干什么的?调试的时候把 v_sql 打印出来下不就好了吗?你把语句发出来我来改

CREATE OR REPLACE PROCEDURE pro_test

IS

v_sql VARCHAR2(512);

CURSOR cur_curve IS

SELECT substr(table_name,3) AS table_name,replace(substr(table_name,0,1),'T','V')||substr(table_name,2) AS veiw_name FROM user_tables WHERE table_name LIKE 'T_E_%CUR%';

BEGIN

FOR i IN cur_curve LOOP

v_sql:= ' INSERT INTO '||i.table_name|| ' SELECT * FROM ' ||i.veiw_name|| ' ';

dbms_output.put_line(v_sql);

END LOOP;

END;



赞(0)    操作        顶端 
青草繁星
注册用户
等级:少校
经验:951
发帖:9
精华:0
注册:2015-3-30
状态:离线
发送短消息息给青草繁星 加好友    发送短消息息给青草繁星 发消息
发表于: IP:您无权察看 2015-6-1 11:15:16 | [全部帖] [楼主帖] 15  楼

CREATE OR REPLACE PROCEDURE pro_test IS

v_sql VARCHAR2(512);

CURSOR cur_curve IS

SELECT substr(table_name, 3) AS table_name,

replace(substr(table_name, 0, 1), 'T', 'V') ||

substr(table_name, 2) AS veiw_name

FROM user_tables

WHERE table_name LIKE 'T_E_%CUR%';

BEGIN

FOR i IN cur_curve LOOP

v_sql := ' INSERT INTO ' || i.table_name || ' SELECT * FROM ' ||

i.veiw_name || ' ';

begin

dbms_output.put_line(v_sql);

execute immediate v_sql;

exception

when no_data_found then

null;

end;

END LOOP;

END;



赞(0)    操作        顶端 
总帖数
15
每页帖数
102/2页12
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论