Loops 使用PL/SQL将数据从一个表导出到另一个表
我有两张桌子,分别叫桌子1和桌子2。 表2没有数据。它只有名为City和Count of University的栏目。 表1为:Loops 使用PL/SQL将数据从一个表导出到另一个表,loops,for-loop,plsql,count,Loops,For Loop,Plsql,Count,我有两张桌子,分别叫桌子1和桌子2。 表2没有数据。它只有名为City和Count of University的栏目。 表1为: City University ------------------------- Istanbul ITU Istanbul Bogazici Uni Istanbul YTU Istanbul Koc Uni Ankara METU Ankara
City University
-------------------------
Istanbul ITU
Istanbul Bogazici Uni
Istanbul YTU
Istanbul Koc Uni
Ankara METU
Ankara Hacettepe Uni
Ankara Baskent Uni
Trabzon KTU
我想使用PL/SQL将城市和大学数量从表1导出到表2。因此,表2如下所示:
City Count of University
-------------------------------------
Istanbul 4
Ankara 3
Trabzon 1
我该怎么做?我知道我需要使用循环,但我不知道如何使用。
我想学习可用代码。我认为您需要:
insert into table_2 SELECT City, count(1) total FROM table_1 group by City
这里不需要使用任何PLSQL。您可以使用一个简单的查询来实现这一点。为了说明这一点,下面的查询将生成表2的数据:
SELECT City, count(1) "Count of University"
FROM table_1
group by City;
第二部分是填充它,因此您可以使用下面的查询来填充它
insert into table_2
SELECT City,
count(1) total
FROM table_1
group by City
用于上述内容的PLSQL匿名块:
declare
begin
Insert into table_2
SELECT City,
count(1)
FROM table_1
group by City;
commit;
exception
when others then
dbms_output.put_line(sqlcode||'-'||sqlerrm);
end;
试试这样的东西,再往下读
您不需要plsql来实现这一点。Sql将足够插入表2选择城市,从表1中按城市计数*我知道这一点,我知道如何做到这一点。但是,我想学习PL/SQL,这是我导师的要求。我是实习生。让别人帮你做这件事并不是在学习……我知道这一点,我知道怎么做。但是,我想学习PL/SQL,这是我导师的要求。我是实习生,我知道这一点,我知道如何做到这一点。但是,我想学习PL/SQL,这是我导师的要求。我正在检查我的职位。总是让事情变得简单,而不是完成你的文章。这真的很简单,但我需要使用循环。对我来说更好。但是谢谢。亲爱的,您首先需要了解PL/SQL引擎是如何工作的。存储过程来得很晚。首先从简单的事情开始,然后建立你的基础,然后在这个主题上获得力量。你根本无法跳到顶端。当您可以用更简单的方式使用循环时,使用循环也不是一个好的实践。它增加了开销。@Raj_Te,正如他所提到的-他是实习生,试图学习pl/sql。所以我认为最好先从简单的事情开始。他还“需要使用循环”。不过,请随意提供批量收集的替代解决方案。那么,您认为对于实习生来说,使用游标是一个更好的开始。。。!!!我不认为他的导师会预料到上述情况。@Raj_Te,我的理解是——他的导师的要求是使用循环。。。不管怎样,让他自己决定吧。谢谢这个过程正常运行,但我看不到表2,我写了select*来自表2,但我只能看到列。我写下承诺;但这是不正确的。我怎样才能看到表2?@yilmazmanfurkan61调用像这样的过程begin copyTable;犯罪终止这应该作为脚本执行。然后从表2中选择*。还要确保表_1不是空的。
create or replace procedure copyTable is
cursor source_table is
select city,count(*) as total from table_1 group by city;
begin
for item in source_table loop
insert into table_2(City,Count_of_University) values (item.city,item.total);
end loop;
end;