Informix SQL /在表中插入存储过程的结果

时间:2015-08-05 09:34:25

标签: sql informix

kassa_akt_revizii_parser('','','') returns field(per_monets_5,per_monets_10,per_monets_25,per_monets_50,per_rub_1,per_rub_5,per_rub_10,per_rub_25,per_rub_50,per_rub_100,per_rub_200,per_rub_500,per_val_376,per_val_428,per_val_498,per_val_643,per_val_840,per_val_978,per_val_980)

我们需要在表格中插入:

insert into kassa_akt_revizii_pereschet(
id_akt_revizii,per_monets_5,per_monets_10,per_monets_25,per_monets_50,
per_rub_1, per_rub_5, per_rub_10, per_rub_25, per_rub_50,
per_rub_100, per_rub_200, per_rub_500,per_val_376, 
per_val_428, per_val_498, per_val_643, per_val_840,
per_val_978, per_val_980)
values(50, kassa_akt_revizii_parser('','',''));

INSERT中的列数与VALUES的数量不匹配

2 个答案:

答案 0 :(得分:2)

  

INSERT中的列数与VALUES的数量不匹配

您的错误消息只是表示插入(列)与您插入的(值)数量不匹配。

再次检查并重新插入。

插入查询:

insert into tablename (column1,column2,...column50) values (value1,value2...value50)

答案 1 :(得分:1)

尝试这种方式:

INSERT INTO kassa_akt_revizii_pereschet(
    id_akt_revizii,
    per_monets_5,
    per_monets_10,
    per_monets_25,
    per_monets_50,
    per_rub_1, 
    per_rub_5, 
    per_rub_10, 
    per_rub_25, 
    per_rub_50,
    per_rub_100, 
    per_rub_200, 
    per_rub_500,
    per_val_376, 
    per_val_428, 
    per_val_498, 
    per_val_643, 
    per_val_840,
    per_val_978, 
    per_val_980
)
SELECT 50, *
FROM TABLE(kassa_akt_revizii_parser('','',''));

示例:

[infx1210@tardis ~]$ dbaccess -e db1 test.sql

Database selected.

CREATE TABLE tab1( col1 INT, COL2 INT, COL3 INT);
Table created.



CREATE FUNCTION sp1() RETURNING INT, INT
        RETURN 1, 2;
END FUNCTION;
Routine created.

;

INSERT INTO tab1 VALUES (0, sp1());
  236: Number of columns in INSERT does not match number of VALUES.
Error in line 7
Near character position 26


INSERT INTO tab1
SELECT 1, *
FROM TABLE(sp1());
1 row(s) inserted.



SELECT * FROM tab1;

       col1        col2        col3

          1           1           2

1 row(s) retrieved.



Database closed.

[infx1210@tardis ~]$