将事件历史记录添加到Oracle SQL的过程

将事件历史记录添加到Oracle SQL的过程,oracle,procedure,Oracle,Procedure,我需要用Oracle SQL编写一个过程,将三个表中的数据插入到一个单独的表中,而不使用任何键。以下是我的数据库模型: 。(所有列名均为波兰语,对此表示抱歉) 我已经为历史创建了一个表: create table art_historia( data_koncertu date default sysdate, --Concert date miejsce_koncertu varchar2(40), --Place of concert nazwa_zespolu varch

我需要用Oracle SQL编写一个过程,将三个表中的数据插入到一个单独的表中,而不使用任何键。以下是我的数据库模型:

。(所有列名均为波兰语,对此表示抱歉)

我已经为历史创建了一个表:

create table art_historia(
data_koncertu date default sysdate,   --Concert date
miejsce_koncertu varchar2(40),        --Place of concert
nazwa_zespolu varchar2(30),           --Name of band
liczba_widzow number(5),              --Number of viewers
bilans_finansowy number (8,2));       --Finance balance
我想用这个过程插入的值,我可以用这个选择来描绘:

select s.miasto, a.nazwa_zespolu, k.ilosc_sprzedanych_biletow, k.zysk
    from art_sala s, art_koncert k, art_artysta a
    where k.kod_sali_koncertowej = s.kod_sali_koncertowej and
    k.kod_artysty = a.kod_artysty and
    k.id_koncertu = (variable of concert id);
我该怎么做呢?

试试这个

CREATE PROCEDURE INSERT_ART_HIST_P (p_in_concert_id number) IS
BEGIN
INSERT INTO art_historia
select s.miasto, a.nazwa_zespolu, k.ilosc_sprzedanych_biletow, k.zysk
    from art_sala s, art_koncert k, art_artysta a
    where k.kod_sali_koncertowej = s.kod_sali_koncertowej and
    k.kod_artysty = a.kod_artysty and
    k.id_koncertu = p_in_concert_id;
END;

我现在看不到图像。虽然:看起来您有一个目标表,您有一个源表,您编写了一个查询。。。那么,问题出在哪里呢?有一个错误行/COL error-------------------------------------------------------------------3/1 PL/SQL:SQL语句忽略了3/13 PL/SQL:ORA-00947:niewystarczająca liczba wartości Errors:check编译器loghmm是因为select需要有5个值,因为表有5列。在查询中返回5个值,或者使用INSERT INTO art_historia(第1列、第2列、第3列)定义要插入的4个值。很抱歉,因为波兰人的名字,我不能解决这个问题