Oracle存储过程问题,写个小存储过程!求帮忙!

在Oracle中创建存取过程问题。题目是这样的:现在有一个表A,现在要创建存储过程proc_A2B,实现:在过程中创一个表B,并将表A中所有记录导入到表B,过程返回一个值... 在Oracle中创建存取过程问题。
题目是这样的:现在有一个表A,现在要创建存储过程proc_A2B,实现:在过程中创一个表B,并将表A中所有记录导入到表B,过程返回一个值,返回导入成功的条数。
大虾来教教我! 现在我在SQL Server中写成功了,就是Oracle中失败
SQL代码:
CREATE proc proc_A2OB
as
begin
set nocount on;
declare @i int;
select * into #B from A;
select @i=COUNT(1) from #B;
print('数据导入成功条数:'+convert(varchar(100),@i));
end;
go
这在Oracle上市绝对不成功的,我这样写:
CREATE OR REPLACE PROCEDURE AINTOB(I OUT INT) IS
BEGIN
EXECUTE IMMEDIATE 'CREATE table B as select * from A';
select count(7) into I from B;
DBMS_OUTPUT.PUT_LINE(I);
EXECUTE IMMEDIATE ' drop table B' ;
END;
这个也错误。。。 谢谢大神了!
展开
 我来答
凌晨六点整
2014-03-22 · TA获得超过140个赞
知道小有建树答主
回答量:309
采纳率:0%
帮助的人:153万
展开全部
CREATE OR REPLACE PROCEDURE AINTOB(I OUT INT) IS
BEGIN
  EXECUTE IMMEDIATE 'CREATE table B as select * from A';
   select count(7) into I from B;--B表不存在无法编译通过,将这句也改成 EXECUTE IMMEDIATE 'select count(7) from B'  into I
  DBMS_OUTPUT.PUT_LINE(I);
  EXECUTE IMMEDIATE ' drop table B' ;
END;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
killertab
2014-03-23
知道答主
回答量:46
采纳率:0%
帮助的人:20.1万
展开全部
create or replace procedure proc_A2B is
i number;
begin
create tableB as
select * from tableA;
selct count(*)
into i from tableA;

dbms_output.put_line(i);
end;--完全实现楼上说的功能。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e415e6e
2014-03-22 · TA获得超过136个赞
知道小有建树答主
回答量:141
采纳率:100%
帮助的人:151万
展开全部
select count(7) into I from B; 你这个肯定要报错的啊,因为你B表根本就不存在,还是用动态sql的写法去写就行了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式