Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Plsql PL/SQL填充表_Plsql - Fatal编程技术网

Plsql PL/SQL填充表

Plsql PL/SQL填充表,plsql,Plsql,大家好,这是我第一次发帖,但我真的需要帮助 事实上,我是SQL编程新手,我现在面临着太多的问题,尤其是这个练习 我们有4张桌子 客户(numcli,名称、地址、Towncli) 账户(numacc,货币,#numcli,#numag) 代理(numag,nameag,townag) 客户(numcli,numag) 现在我们有一个空表“STATES”,我们需要用4个表中的信息填充它 州(numcli、countaccount、countag、Calleey、taux) taux必须初始化为0 强

大家好,这是我第一次发帖,但我真的需要帮助 事实上,我是SQL编程新手,我现在面临着太多的问题,尤其是这个练习 我们有4张桌子 客户(numcli,名称、地址、Towncli) 账户(numacc,货币,#numcli,#numag) 代理(numag,nameag,townag) 客户(numclinumag) 现在我们有一个空表“STATES”,我们需要用4个表中的信息填充它 州(numcli、countaccount、countag、Calleey、taux) taux必须初始化为0

强值表示主键 #中的值表示外键

所以我编写了这个pl/sql块,但它有一个问题

DEclare 
cursor c1 is select 
client1.numcli,count(numacc),sum(money),count(numag),taux from account ,states group by (numcli) ;
begin
for c2 in c1
loop
c2.taux:='0' ;
insert into states (numcli,countaccount,countag,summoney,taux) values c2 ;
end loop ;
end ;
他说对我来说,甲骨文价值观还不够 有人能帮我吗 1) “client1.numclient1”代表什么?这是误导。这是表帐户中的numcli吗? 2) 游标“from”子句,表示两个表,但这里没有连接。打字错误?如果没有,加入他们; 3) 游标属性列为numcli、count(numac)、sum(money)、count(numag)和taux,但在insert语句中,属性的顺序不同:numcli、countaccount、countag、coursey、taux; 4) 在这种情况下,不能将“.values c2;”插入到这样的表中。你需要逐一申报

对于解决方案,如果您的目的只是填充表,则可以执行以下操作:

insert into states(numcli,countaccount,countag,summoney,taux) 
select
  acn.numcli,
  count(acn.numacc) countaccount,
  count(acn.numag) countag,
  sum(acn.money) summoney,
  0 taux 
from 
  account acn
group by
  acn.numcli;
这里不需要光标。 希望能有帮助。 祝您在探索PL/SQL世界时好运

洞察: 1) “client1.numclient1”代表什么?这是误导。这是表帐户中的numcli吗? 2) 游标“from”子句,表示两个表,但这里没有连接。打字错误?如果没有,加入他们; 3) 游标属性列为numcli、count(numac)、sum(money)、count(numag)和taux,但在insert语句中,属性的顺序不同:numcli、countaccount、countag、coursey、taux; 4) 在这种情况下,不能将“.values c2;”插入到这样的表中。你需要逐一申报

对于解决方案,如果您的目的只是填充表,则可以执行以下操作:

insert into states(numcli,countaccount,countag,summoney,taux) 
select
  acn.numcli,
  count(acn.numacc) countaccount,
  count(acn.numag) countag,
  sum(acn.money) summoney,
  0 taux 
from 
  account acn
group by
  acn.numcli;
这里不需要光标。 希望能有帮助。 祝您在探索PL/SQL世界时好运