
我想在存储过程中动态建表,动态的把查询的sql语句结果 插入到新建的表中 怎么弄 急急急急 请大家帮忙
3个回答
展开全部
SQL中的“视图”就是做这种事情的,相当于动态的表,你可以用SQL语句创建新的视图。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
假设sql语句为select 列1,列2 from 源数据表
动态创建的表名叫"临时表"
那么语句则为:
select 列1,列2
into 临时表
from 源数据表
动态创建的表名叫"临时表"
那么语句则为:
select 列1,列2
into 临时表
from 源数据表
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
原表和要新建的表,字段什么的都发上来,我来试试
追问
原表是
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;
试试吧~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询