Svarar inte direkt på frågan - jag vet inte varför beteendet är annorlunda eller hur man ändrar det när funktionen anropas från en fråga, annat än med en column
kommando för att ställa in bredden, med hjälp av ett alias här för att förenkla saker något:
set lines 250
column rc format a250
select my_function(input1,input2,input3) as rc from dual;
Men du kan också få den utdata du vill ha genom att anropa funktionen annorlunda; med en variabel och ett anonymt block (eller execute
som stenografi):
variable rc refcursor;
exec :rc := MY_FUNCTION(input1,input2,input3);
print rc
Nåväl, nästan som du vill ha det; den första raden i utdata är variabelnamnet snarare än funktion/parameterlistan; men markörkolumnerna är inte lindade:
anonymous block completed
RC
---------------------------------------------------------------------------
COLUMN1 COLUMN2 COLUMN3 COLUMN4 COLUMN5
------------------------- ------- ---------- ---------- ----------
18-NOV-14 text some_data1 some_data2 some_data3
Du kan också köra din funktion från kodredigeraren (snarare än kalkylbladet), vilket genererar ett anonymt block åt dig; när du klickar på körpilen (eller trycker på kontroll-F10) får du en dialogruta så här:
Och efter att ha kört det får du en "output variables"-flik längst ner i huvudfönstret som visar markörens utdata i ett rutnät.
Du kan också se rutnätsvyn när du kör select my_function(...) from dual
. Markören går in i det normala "frågeresultat"-fönstret men inte i en mycket vänlig form, visas som något i stil med:
{<COLUMN1=19-NOV-14,COLUMN2=text,COLUMN3=some_data1,COLUMN4=some_data2,COLUMN5=some_data3>,}
Men om du dubbelklickar på ett värde så ser du en gul pennsymbol längst till höger i kolumnen, och om du klickar på den visas markören i sitt eget rutnät.
Personligen föredrar jag print
alternativet i skriptutdata men jag använder sällan gird-displayerna ändå.