Vytvoreni pretypovavaci fce v PgSQL
Karel Zak
zakkr na zf.jcu.cz
Středa Srpen 23 13:17:50 CEST 2000
On Wed, 23 Aug 2000, "Zíka Aleš, Ing." wrote:
> Zdravim,
>
> mam nasledujici problem.
> Mam tabulku, kde jsou cisla ulozena ve sloupci typu CHAR, kdyz se to
> snazim setridit, funguje to spatne, protoze to samozrejme tridi lexikalne,
> tedy 1, 10, 11, 2, 20, 3,...
> Pokus SELECT * FROM tabulka ORDER BY cislo::int4; skonci chybou,
> PostgreSQL mi vynada, ze neumí pretypovat BPCHAR na INT4.
>
test=# select bpchar('10')::text::int;
?column?
----------
10
(1 row)
tedy bpchar na text a text na int, pocjopitelne zaplatite rychlosti...
> Da se nejak napsat pretypovavaci funkce CHAR->INT a hlavne, donutit
test=# CREATE FUNCTION mycast( bpchar ) RETURNS int
test-# AS 'SELECT $1::text::int' LANGUAGE 'SQL';
CREATE
test=# select mycast( '10' );
mycast
--------
10
(1 row)
> PgSQL, aby ji v tomto pripade automaticky pouzil?
Tomudle nerozumim...
Karel
Další informace o konferenci Test