CREATE TABLE master (
Code INTEGER NOT NULL,
Field1 VARCHAR(100),
Field2 VARCHAR(100),
Field3 VARCHAR(100)
);
ALTER TABLE master ADD PRIMARY KEY (Code);
CREATE TABLE detail (
Code INTEGER NOT NULL,
Master INTEGER,
Field1 VARCHAR(100),
Field2 VARCHAR(100)
);
ALTER TABLE detail ADD PRIMARY KEY (Code);
CREATE TABLE loaded (
Code INTEGER NOT NULL,
Field1 VARCHAR(100),
Field2 VARCHAR(100),
Field3 VARCHAR(100),
Field4 VARCHAR(100),
Field5 VARCHAR(100)
);
ALTER TABLE loaded ADD PRIMARY KEY (Code);
DECLARE EXTERNAL FUNCTION mod
INTEGER,
INTEGER
RETURNS DOUBLE PRECISION BY VALUE
ENTRY_POINT 'IB_UDF_mod' MODULE_NAME 'ib_udf';
SET TERM ^ ;
CREATE PROCEDURE fill_tables
AS
DECLARE VARIABLE i INTEGER;
BEGIN
i = 0;
WHILE (i <= 2000) DO BEGIN
INSERT INTO master
(Code, Field1, Field2, Field3)
VALUES
(:i, '01234567890123456789', '12345678901234567890', '23456789012345678901');
i = i + 1;
END
i = 1;
WHILE (I <= 50000) DO BEGIN
INSERT INTO detail
VALUES
(:i, mod(:i, 5000) + 1, '01234567890123456789', '12345678901234567890');
i = i + 1;
END
SUSPEND;
END^
CREATE PROCEDURE master_insert(
p_Code INTEGER,
p_Field1 VARCHAR(100),
p_Field2 VARCHAR(100),
p_Field3 VARCHAR(100))
AS
BEGIN
INSERT INTO master
(Code, Field1, Field2, Field3)
VALUES
(:p_Code, :p_Field1, :p_Field2, :p_Field3);
SUSPEND;
END^
CREATE PROCEDURE empty_proc
AS
BEGIN
SUSPEND;
END^
SET TERM ; ^