Quantcast
Channel: SQL.ru: Firebird, InterBase
Viewing all articles
Browse latest Browse all 1677

Корректность insert-запроса в разных осях

$
0
0
Столкнулся с этим на клиенте, когда на винде запрос отработал без ошибок, а на Дебе - заругался.

+ табля + триггер
CREATE TABLE TBL_TEST_UPD
(
  ID INTEGER NOT NULL,
  STR_FLD VARCHAR(100),
  INT_FLD INTEGER,
  CURR_FLD NUMERIC(15,4),
  DATE_FLD TIMESTAMP DEFAULT current_timestamp,
  CONSTRAINT PK_TBL_TEST_UPD PRIMARY KEY (ID)
  USING INDEX PK_TBL_TEST_UPD_IDX
);

GRANT DELETE, INSERT, REFERENCES, SELECT, UPDATE
 ON TBL_TEST_UPD TO  SYSDBA WITH GRANT OPTION;

SET TERM ^ ;
CREATE TRIGGER TBL_TEST_UPD_BI FOR TBL_TEST_UPD ACTIVE
BEFORE INSERT POSITION 0
AS
BEGIN
  IF (NEW.ID IS NULL) THEN
    NEW.ID = GEN_ID(GEN_TBL_TEST_UPD_ID,1);
END^
SET TERM ; ^

+ консоль
leyba@debian93:~$ isql
Use CONNECT or CREATE DATABASE to specify a database
SQL> connect 'localhost:/home/leyba/development/dbase/TEST_TREE.FDB' user sysdba password 'cooladmin';
Database: 'localhost:/home/leyba/development/dbase/TEST_TREE.FDB', User: SYSDBA
SQL> show db;
Database: localhost:/home/leyba/development/dbase/TEST_TREE.FDB
        Owner: SYSDBA                         
PAGE_SIZE 16384
Number of DB pages allocated = 3062
Number of DB pages used = 344
Number of DB pages free = 2718
Sweep interval = 20000
Forced Writes are ON
Transaction - oldest = 8247
Transaction - oldest active = 8248
Transaction - oldest snapshot = 8248
Transaction - Next = 8252
ODS = 12.0
Database not encrypted
Default Character set: UTF8
SQL> show version;
ISQL Version: LI-V3.0.2.32703 Firebird 3.0
Server version:
Firebird/Linux/Intel/i386 (access method), version "LI-V3.0.2.32703 Firebird 3.0"
Firebird/Linux/Intel/i386 (remote server), version "LI-V3.0.2.32703 Firebird 3.0/tcp (debian93)/P15:C"
Firebird/Linux/Intel/i386 (remote interface), version "LI-V3.0.2.32703 Firebird 3.0/tcp (debian93)/P15:C"
on disk structure version 12.0
SQL> show users;
Users in the database
  2 #SYSDBA   
SQL> INSERT INTO TBL_TEST_UPD (STR_FLD, INT_FLD, CURR_FLD, DATE_FLD) VALUES ('STR_FLD', 222, 111.11, CURRENT_TIMESTAMP);
Statement failed, SQLSTATE = 22003
arithmetic exception, numeric overflow, or string truncation
-numeric value is out of range
-At trigger 'TBL_TEST_UPD_BI' line: 6, col: 5
SQL> quit;
leyba@debian93:~$ 


Сервак ставил из архива инсталлятором. Апдейты и удаления проходят без проблем, а вот на вставке такая фигня.

Что не так?
=================
Док.

Win7 Ultim x64/Deb 9.2(GNOME, MATE; gtk2) i386:
FB 3.0.2.32703, диалект 3, SS,
Lazarus 1.9(r.57543); FPC 3.1.1 (r.38588), IBX by -Rik-; IBE 2017.4.19.2

Viewing all articles
Browse latest Browse all 1677

Trending Articles