我想在存储过程中动态建表,动态的把查询的sql语句结果 插入到新建的表中 怎么弄 急急急急 请大家帮忙

 我来答
百度网友bdb9803
2011-08-17 · TA获得超过1.1万个赞
知道大有可为答主
回答量:1.1万
采纳率:53%
帮助的人:1亿
展开全部
SQL中的“视图”就是做这种事情的,相当于动态的表,你可以用SQL语句创建新的视图。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wforce
2011-08-17 · TA获得超过843个赞
知道小有建树答主
回答量:672
采纳率:0%
帮助的人:809万
展开全部
假设sql语句为select 列1,列2 from 源数据表
动态创建的表名叫"临时表"
那么语句则为:
select 列1,列2
into 临时表
from 源数据表
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zjx102938
2011-08-17 · TA获得超过1038个赞
知道小有建树答主
回答量:396
采纳率:100%
帮助的人:301万
展开全部
原表和要新建的表,字段什么的都发上来,我来试试
追问
原表是
tb_sale
(
STATIS_MONTH VARCHAR2(6)
DEAL_DATE DATE
USER_ID VARCHAR2(4)
PRODUCT_ID VARCHAR2(5)
SALE_TIME DATE
SALE_FEE NUMBER
SALE_COUNT NUMBER
SALE_SITE VARCHAR2(8)
SALE_XLH VARCHAR2(20)

新建表的字段
table_name(
DEAL_DATE DATE
USER_ID VARCHAR2(10)
PRODUCT_ID VARCHAR2(10)
SALE_SITE VARCHAR2(10)
SALE_COUNT NUMBER


您看看 有什么好的方法没
追答
每次调用存储过程,都要把tb_sale的相应字段插入到table_name里去吧

CREATE OR REPLACE PROCEDURE TB_SALE_PRC
AS
cur_sale tb_sale%rowtype;
CURSOR cur_sale_name
IS
select * from tb_sale;
BEGIN
open cur_sale_name;
fetch cur_sale_name into cur_sale;
loop
if cur_sale_name%FOUND then
insert into table_name(DEAL_DATE,USER_ID,PRODUCT_ID,SALE_SITE,SALE_COUNT)
values(cur_sale.DEAL_DATE,cur_sale.USER_ID,cur_sale.PRODUCT_ID,cur_sale.SALE_SITE,cur_sale.SALE_COUNT);
end if;
end loop;
DBMS_OUTPUT.PUT_LINE('新数据已经保存到name表');
commit;
end TB_SALE_PRC;

如果我的代码执行无报错就会存在数据库里,你每次要调用
BEGIN
TB_SALE_PRC;
END;
试试吧~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式