Neodpovídám přímo na otázku - nevím, proč se chování liší nebo jak ho změnit při volání funkce z dotazu, jinak než pomocí column
příkaz pro nastavení šířky pomocí aliasu pro mírné zjednodušení:
set lines 250
column rc format a250
select my_function(input1,input2,input3) as rc from dual;
Ale můžete také získat požadovaný výstup voláním funkce jiným způsobem; s proměnnou a anonymním blokem (nebo execute
jako těsnopis):
variable rc refcursor;
exec :rc := MY_FUNCTION(input1,input2,input3);
print rc
No, skoro jak chcete; první řádek výstupu je název proměnné spíše než seznam funkcí/parametrů; ale sloupce kurzoru nejsou zalomeny:
anonymous block completed
RC
---------------------------------------------------------------------------
COLUMN1 COLUMN2 COLUMN3 COLUMN4 COLUMN5
------------------------- ------- ---------- ---------- ----------
18-NOV-14 text some_data1 some_data2 some_data3
Svou funkci můžete také spustit z editoru kódu (spíše než z listu), který vám vygeneruje anonymní blok; když kliknete na šipku běhu (nebo stisknete Ctrl-F10), zobrazí se dialogové okno jako toto:
A po jeho spuštění se vám ve spodní části hlavního okna zobrazí záložka 'výstupní proměnné', která zobrazuje výstup kurzoru v mřížce.
Zobrazení mřížky můžete také vidět, když spustíte select my_function(...) from dual
. Kurzor přejde do normálního okna „výsledek dotazu“, ale ne ve velmi přátelské podobě, zobrazí se jako:
{<COLUMN1=19-NOV-14,COLUMN2=text,COLUMN3=some_data1,COLUMN4=some_data2,COLUMN5=some_data3>,}
Pokud však na hodnotu dvakrát kliknete, uvidíte symbol žluté tužky zcela vpravo ve sloupci a kliknutím na něj se kurzor zobrazí v jeho vlastní mřížce.
Osobně preferuji print
možnost ve výstupu skriptu, ale stejně zřídka používám zobrazení gird.