向各位高手请教一个问题 ORACLE存储过程建多个表的问题,执行完后只建成了一个表。。。
代码如下:CREATEORREPLACEPROCEDUREdayfresh(on_flagOUTNUMBER,out_reasonOUTVARCHAR2)isvsqlva...
代码如下:
CREATE OR REPLACE PROCEDURE dayfresh(
on_flag OUT NUMBER,
out_reason OUT VARCHAR2) is
vsql varchar2(4000);
begin
vsql := 'create table '||'DW_V_USER_GPRS_DAILY_0'||to_char(sysdate,'yyyymmdd')||
' as select * from sjck.DW_V_USER_GPRS_DAILY_775@new_hnstat';
execute immediate vsql;
commit;
vsql := 'create table '||'ODS_BUSI_CUSTOMER_0'||to_char(sysdate,'yyyymmdd')||
'as select * from sjck.ODS_BUSI_CUSTOMER_775@new_hnstat ';
execute immediate vsql;
commit;
EXCEPTION
WHEN OTHERS THEN
on_flag := SQLCODE;
out_reason := SUBSTR(SQLERRM, 1, 255);
ROLLBACK;
END; 展开
CREATE OR REPLACE PROCEDURE dayfresh(
on_flag OUT NUMBER,
out_reason OUT VARCHAR2) is
vsql varchar2(4000);
begin
vsql := 'create table '||'DW_V_USER_GPRS_DAILY_0'||to_char(sysdate,'yyyymmdd')||
' as select * from sjck.DW_V_USER_GPRS_DAILY_775@new_hnstat';
execute immediate vsql;
commit;
vsql := 'create table '||'ODS_BUSI_CUSTOMER_0'||to_char(sysdate,'yyyymmdd')||
'as select * from sjck.ODS_BUSI_CUSTOMER_775@new_hnstat ';
execute immediate vsql;
commit;
EXCEPTION
WHEN OTHERS THEN
on_flag := SQLCODE;
out_reason := SUBSTR(SQLERRM, 1, 255);
ROLLBACK;
END; 展开
展开全部
有个地方少了个空格,在你连接的时候字符串连接在一起了,oracle识别不出来,第二个vsql
vsql := 'create table '||'ODS_BUSI_CUSTOMER_0'||to_char(sysdate,'yyyymmdd')||
'as select * from sjck.ODS_BUSI_CUSTOMER_775@new_hnstat ';
在
'as select * from sjck.ODS_BUSI_CUSTOMER_775@new_hnstat ';
这行第一个引号前面加个空格
' as select * from sjck.ODS_BUSI_CUSTOMER_775@new_hnstat ';
就行了
那个commit 和rollback可以去掉,没有用,create是DDL语句,是自动提交的。
vsql := 'create table '||'ODS_BUSI_CUSTOMER_0'||to_char(sysdate,'yyyymmdd')||
'as select * from sjck.ODS_BUSI_CUSTOMER_775@new_hnstat ';
在
'as select * from sjck.ODS_BUSI_CUSTOMER_775@new_hnstat ';
这行第一个引号前面加个空格
' as select * from sjck.ODS_BUSI_CUSTOMER_775@new_hnstat ';
就行了
那个commit 和rollback可以去掉,没有用,create是DDL语句,是自动提交的。
大雅新科技有限公司
2024-11-19 广告
2024-11-19 广告
这方面更多更全面的信息其实可以找下大雅新。深圳市大雅新科技有限公司从事KVM延长器,DVI延长器,USB延长器,键盘鼠标延长器,双绞线视频传输器,VGA视频双绞线传输器,VGA延长器,VGA视频延长器,DVI KVM 切换器等,优质供应商,...
点击进入详情页
本回答由大雅新科技有限公司提供
展开全部
B表结构和A表一致
create table B as select * from A
或者你B表已经先建好了
insert into B (select * from A)
insert into B(字段1,字段2,...) (select 字段1,字段2,... from A)
create table B as select * from A
或者你B表已经先建好了
insert into B (select * from A)
insert into B(字段1,字段2,...) (select 字段1,字段2,... from A)
追问
第二个表和第一个表字段内容都不一样的呀,你说的方法能用吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
确实存在空格的问题,但是两个建表的语句不管是对是错,格式是一样的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询