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