RDB pro pole

14 views
Skip to first unread message

MaReK Penguin_007 Olsavsky

unread,
Mar 16, 2012, 5:30:47 AM3/16/12
to Firebird (CZ)
Dobry den,
mam definovany domeny a z nich postavene tabulky. Potrebuji napsat
import z CSV a nehodlam skladat dotazy o 400 polich rucne.
Jeden z definovanych typu je pro penize za podlednich 12 mesicu a
nejcistsi nakonec vyslo pole.
Importni CSV ma hlavicku ze ktere poznam nazev sloupce, pro typ polozky
si do tabulky sahnout umim, ale pouze na urovni jestli che INT, FLOAT,
INTEGER, ..., ale zda je nektery sloupec pole integeru nepoznam.
Napr:
CREATE DOMAIN D_KC12 AS NUMERIC(15,2) [1:12];

CREATE TABLE POTEST (
POTEST INTEGER,
TKC D_KC12 /* D_KC12 = NUMERIC(15,2) */
);

Po spusteni dotazu:
SELECT DISTINCT r.RDB$FIELD_NAME AS fName,
CASE f.RDB$FIELD_TYPE
WHEN 261 THEN 'BLOB'
WHEN 14 THEN 'CHAR'
WHEN 40 THEN 'CSTRING'
WHEN 11 THEN 'D_FLOAT'
WHEN 27 THEN 'DOUBLE'
WHEN 10 THEN 'FLOAT'
WHEN 16 THEN 'INT64'
WHEN 8 THEN 'INTEGER'
WHEN 9 THEN 'QUAD'
WHEN 7 THEN 'SMALLINT'
WHEN 12 THEN 'DATE'
WHEN 13 THEN 'TIME'
WHEN 35 THEN 'TIMESTAMP'
WHEN 37 THEN 'VARCHAR'
ELSE 'UNKNOWN'
END AS fType,
f.RDB$FIELD_SUB_TYPE AS field_subtype,
f.rdb$dimensions AS dimension
FROM RDB$RELATION_FIELDS r
LEFT JOIN RDB$FIELDS f ON r.RDB$FIELD_SOURCE = f.RDB$FIELD_NAME
WHERE r.RDB$RELATION_NAME='POTEST' -- table name
ORDER BY r.RDB$FIELD_POSITION;

tedy vim ze KC je ciselneho typu, ale potrebuji jeste ktery RDB$ mi
ukaze ze jde o pole, pripadne jeho horni a dolni hranici. To spravne RDB
jsem zatim nenalezl, proto se obracim na konferu.

Dekuji
MaReK Olsavsky

Jiri Cincura

unread,
Mar 16, 2012, 7:04:15 AM3/16/12
to fireb...@googlegroups.com
2012/3/16 MaReK Penguin_007 Olsavsky <marek.o...@gmail.com>:

> RDB$ mi
> ukaze ze jde o pole, pripadne jeho horni a dolni hranici. To spravne RDB
> jsem zatim nenalezl, proto se obracim na konferu.

RDB$FIELDS.RDB$DIMENSIONS a RDB$FIELD_DIMENSIONS.*

Ale doporucil bych se polim vyhnout. Je to takovy hack.

--
Jiri {x2} Cincura (x2develop.com founder)
http://blog.cincura.net/ | http://www.ID3renamer.com

MaReK Penguin_007 Olsavsky

unread,
Mar 16, 2012, 7:47:58 AM3/16/12
to fireb...@googlegroups.com
Dne 16.3.2012 12:04, Jiri Cincura napsal(a):

> 2012/3/16 MaReK Penguin_007 Olsavsky <marek.o...@gmail.com>:
> Ale doporucil bych se polim vyhnout. Je to takovy hack.
^^^Zeptam se asi hloupe.
Problematicky hack? Pripadne v cem?
V PgSQL jsem pole pouzival, pretahuji si zkusennosti. Rozhodit sloupec
do vicero, nebo do externi tabulky zatim mohu, jeste nemam db naplnenu a
aplikace nejede aby se zmena stala problematickou.

MO

Jiri Cincura

unread,
Mar 16, 2012, 7:53:03 AM3/16/12
to fireb...@googlegroups.com
2012/3/16 MaReK Penguin_007 Olsavsky <marek.o...@gmail.com>:
> V PgSQL jsem pole pouzival, pretahuji si zkusennosti. Rozhodit sloupec
> do vicero, nebo do externi tabulky zatim mohu, jeste nemam db naplnenu a
> aplikace nejede aby se zmena stala problematickou.

Mizerna podpora v SQL a nastrojich. Obecne v relacnim svete divny koncept.

A ve FB to neni uplne first-class koncept (i co se tyka externiho POV,
tak internich veci). Kdyz uz bych to nechtel davat do separatni
tabulky, udelal bych 12 sloupcu, zadna veda.

Reply all
Reply to author
Forward
0 new messages